大家好,才是真的好。
和大家和我一样很好奇,目前业界计算机编程语言大约有4000多种,据说还以每天几种的速度在不断增长,当然,绝大多数编程语言或许你没听过,这并不影响我们关注LotusScript到底在别人的眼里排名多少位。
高兴的是上个月我找到了一份排名,不高兴的是LotusScript在别人心目居然只排在449位,虽然已经排在所有语言的前10%,但这并不准确
我想今天的重点是介绍LotusScript(以下简称为LS)语言中的类,也同样适用于VoltScript。
在Java中,所有代码都必须在类中。LS则使用函数,函数可以位于类之外,并且仅使用函数名来进行调用,函数可以写在代理或各种对象的事件当中,在与数据或资源进行交互时,可以使用Domino内置的LS前台类和后台类。
不过,你要是能掌握LS,则更可锦上添花。
毕竟,类是一个模板,可以将变量和数据进行关联,简化代码。打个比方,如果你要定义一个用户相关变量(例如姓、名、年龄等),你需要在每个函数中反复进行定义和调用:
Dim firstName as String
Dim lastName as String
Dim age as Integer
当你创建了一个用户类,这下子就简单多了:
Class Person
Public firstName as String
Public lastName as String
Public age as Integer
End Class
现在,你在函数中可以直接使用定义好的Person类,而无需在每个函数中定义和使用Person相关变量。
上述Person类可以存储在脚本库或集中的位置,假如你熟悉LS机制的话,还可以把你定义的类单独存放在文本文件中,外部引入后再使用。
LS类可由变量(Variables)、属性(Properties)、过程(Subs)、函数(Functions)等四个部分构成,例如我们使用Class关键字定义一个person类:
Class person
' 声明成员变量
public firstname As String
public lastname As String
public age As Integer
' 定义构建函数
Sub New (f As string, l As string, a As Integer)
firstname$ = f$
lastname$ = l$
age% = a%
End Sub
' 定义删除函数
Sub Delete
Print "删除人员对象"
End Sub
' 定义姓和名互换函数
Sub InvertName
Dim fn As String, ln As String
firstname$ = ln$
lastname$ = fn$
Me.firstname$ = lastname$
Me.lastname$ = firstname$
End Sub
End Class
效果如下图:
接着我们可以在自己的代理或需要使用的地方,使用关键字“use”引用脚本库,如下图:
然后根据person类,定义和实例化一个person对象,即在定义person1对象的同时,给它各个属性进行赋值,最后用msgbox函数显示出来:如下图:
在Notes前端运行时,我们看到效果:
是不是很简单?
LS类中的组成部分(变量、属性、过程、函数)都有作用域,即都可以使用Public或Private关键字来表明是否是公用或私有的,如果使用Public则表明在类外部也可调用,否则只能在类内部使用。
尤其值得注意的是类中的变量必须标明为Public或Private,默认是Private,我们的案例中声明为了Public,这样外部也可使用,如下图:
属性、过程、函数等三个部分,默认和Class自身的类型保持一致,是的,默认的是Public,详细的内容留在后面的章节中再讲述。
好了,今天的内容很多,我们就介绍到这里吧。
更多精彩文章请关注微信公众号:协作者