跳转到内容

Curl/示例 4

来自维基教科书,开放的书籍,开放的世界
{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。

您还可以显示地址栏,自动填充表单等。

华夏公益教科书