Curl/示例 4
外观
< Curl
{curl 5.0, 6.0 applet}
|| Simple OO example - I know simple OO is never sufficient || Lets sub-class an ellipse and define a Circle class (width=height=diameter) {define-class CircleGraphic {inherits EllipseGraphic} field diameter:Distance {constructor {default diameter:Distance = 1cm, ...} set self.diameter = diameter {construct-super ..., width=diameter, height=diameter} } } || Declarative is sooo easy to display stuff lets combine them here {HBox {CircleGraphic diameter=2cm}, {CircleGraphic diameter=3cm, fill-color="red"}, {CircleGraphic diameter=5cm} }
此示例展示了一些面向对象的功能以及声明式布局。
第 1-3 行如上所述。
第 4 行开始定义一个名为 Circle 的新面向对象类,该类继承自 Ellipse(isa 关系)。
第 5 行定义了一个用于圆形的字段,用于保存直径的值。实际上并不需要它,可以直接引用已经存储在椭圆形中的宽度和高度。同样,我们应该阻止其他程序员独立于直径更改宽度和高度的值。这就是我所说的简单的面向对象示例永远不够的原因。
第 6 行声明新类的构造函数。关于参数的一点说明。Circle 的第一个参数是一个关键字参数,它具有默认值。Curl 支持位置参数和关键字参数。第二个参数是省略号“...”(也称为“其余参数”)。这是一个用于传入任意数量的参数的结构,您可以解析它们。它非常有用,通常不需要太多工作。
第 7 行将直径值保存在名为 diameter 的对象字段中。
第 8 行调用 Ellipse 的构造函数,但使用给定的直径覆盖宽度和高度的任何提及。
程序的其余部分关闭构造函数和类定义,然后创建一个简单的显示来保存三个圆。请注意,其他信息(填充颜色)通过剩余参数传递给椭圆形。这是一个输出的屏幕截图。
Curl 的动态特性可以用于创建复合应用程序。接下来是一个包含聊天功能和 Web 浏览器的简单复合程序。将下面的脚本另存为文件。
输入“c:\webbrowser.curl”,然后在“运行...”字段中输入以下行。
"c:\Program Files\Curl Corporation\Surge\4\bin\curl.exe" c:\webbrowser.curl
要求您已安装 Internet Explorer 和 Curl 3。
您还可以显示地址栏,自动填充表单等。