EbsScript 提供了很多不属于 PASCAL 语言的函数,但却在 Ebsilon 中用于 EbsScript 的特定插件。这些函数可以通过输入函数名称来调用,例如
simulate;
如果函数需要参数,必须用圆括号"( )"括起来,用逗号(",")隔开:如果函数返回一个值,可以用于正确变量类型的赋值操作,例如
string1 := getTime("%d.%m.%Y" );
其中 string1 被定义为 STRING。"%d.%m.%Y" 是 getTime 函数的可选参数,指定了生成的时间字符串的格式(在本例中,日期显示为 23.10.2001)。
当在 EbsScript 编辑器中使用函数树时,返回值的类型会在函数的名称后面显示(例如,getTime:STRING)。当在代码中插入函数时,通过双击树中的函数名,参数就变得可见。例如,EbsScript 编辑器插入了
getTime( {format:STRING = "%H:%M:%S"} );
这条信息表明,getTime 需要一个名为 format 的参数,其类型为 STRING。但这个参数是可选的,因为有一个默认值,显示在"="后面。因此,调用
getTime("%H:%M:%S");
与调用
getTime;
是等效的。
有几组函数,在下面的章节中进行了描述。这些表格包括
有一些表格,还包括其他的列。
EbsScript 扩展
可以扩展 EbsScript 的功能,例如在 EBSILON 性能优化系统(E-POS)中使用。一些功能也可以在 EBSILONProfessional 中使用。可用的插件在函数概览中列出,带有"需要特殊授权"的注释。若需要使用这些函数,请联系 Iqony 能源服务公司。
函数重载
可以对函数/程序进行重载。然而,这些必须以"重载(overload)"来标记。同名的重载函数 / 程序必须在签名上有成对的不同(在参数的数量上或至少一个参数类型上)。(参见示例文件"Data/Examples/ebsscript_function_overload.ebs"中的 EbsScript)
类
EbsScript 现在支持类。由于 Pascal 并没有为类定义一个标准,EbsScript 的类是按照 Delphi 的语法来架构的。与 Delphi 不同的是,然而 EbsScript中 的类实例是自动变量,也就是说,类实例不需要明确地被销毁,而是当释放最后一个引用时(关键词:自动引用计数,又称 ARC)由系统自动销毁。
此外,类允许重载操作符(见示例文件"Data\Examples\ebsscript_operator_overload.ebs")。
EbsScript 数据构造函数"Record"现在也允许成员函数 / 程序和操作符,但没有继承或虚拟方式。
类和记录之间的主要区别是,类的实例是"引用类型"(即分配到堆中);而记录的实例是"值类型"(即通常被分配到堆栈中)。