IBM Lotus Symphony


使用过程和函数

下面描述了 Lotus® Symphony™ Basic 中过程和函数的基本用法。

备注图标 创建新模块时,Lotus Symphony Basic 会自动插入一个名为“Main”的子例程。此缺省名称与 Lotus Symphony Basic 项目的顺序或起始点无关。您完全可以将此子例程重命名为其他名称。

过程(SUBS)和函数(FUNCTIONS)可将程序分割成多个逻辑片段,从而有助于保持结构化概述。

使用过程和函数的一个好处是,为某个项目开发的含有任务组件的程序代码,同样可以用于其他项目。

将变量传送到过程和函数

可以向过程和函数传送变量。必须对所需参数声明子例程或函数:

SUB SubName( Parameter1 As Type, Parameter2 As Type,... )

程序代码

END SUB

调用子例程时使用以下语法:

SubName(Value1, Value2,...)

传送到子例程的参数必须与子例程声明中指定的参数匹配。

相同过程也适用于函数。此外,函数始终返回函数结果。通过为函数名称指定返回值,可定义函数的结果:

FUNCTION FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type

程序代码

FunctionName=Result

End Function

调用函数时使用以下语法:

Variable=FunctionName(Parameter1, Parameter2,...)

提示图标 您也可以使用标准名称来调用过程或函数:Library.Module.Macro() 例如,要从 Gimmicks 库中调用 Autotext 宏,请使用以下命令:Gimmicks.AutoText.Main()

通过值或引用传送变量

可以通过引用或值将参数传送到子例程或函数。除非特别指定,否则通常是通过引用传送参数。这意味着子例程或函数可以获取该参数,并可以读取和修改参数值。

如果希望通过值传送参数,请在调用子例程或函数时,在参数前插入关键字“ByVal”,例如:

Result = Function( ByVal Parameter)

在这种情况下,函数不会修改参数的原始内容,因为它获得的仅仅是参数值而不是参数本身。

变量的作用域

在子例程或函数中定义的变量仅在该过程内有效。这种变量通常称为“局部”变量。在很多情况下,您希望定义的变量在所有过程中、所有库的各个模块中或者在退出子例程或函数后仍有效。

在子例程或函数外部声明变量

GLOBAL VarName As TYPENAME

只要 Lotus Symphony 会话未结束,变量就一直有效。

PUBLIC VarName As TYPENAME

变量在所有模块中均有效。

PRIVATE VarName As TYPENAME

变量仅在当前模块中有效。

DIM VarName As TYPENAME

变量仅在当前模块中有效。

私有变量示例

通过设置 CompatibilityMode(true) 强制私有变量在模块之间成为私有的。

REM ***** Module1 *****

Private myText As String

Sub initMyText

myText = "Hello"

print "in module1 : ", myText

End Sub

REM ***** Module2 *****

'Option Explicit

Sub demoBug

CompatibilityMode( true )

initMyText

' Now returns empty string

' (or rises error for Option Explicit)

print "Now in module2 : ", myText

End Sub

退出子例程或函数后保存变量内容

STATIC VarName As TYPENAME

在下次进入函数或子例程之前,变量一直保留该值。该声明必须位于子例程或函数中。

指定函数的返回值类型

与变量一样,函数名称后必须含有类型声明字符或由“As”与相应关键字(位于参数列表后)指示的类型,以定义函数返回值的类型。例如:

Function WordCount(WordText as String) as Integer


产品反馈 | 其他文档 | 商标