PowerScript语言基础
注释:
以 "//" 开头,其后书写注释内容,常用于单行注释。
“/…/”中间的部分为注释,便于多行说明。
//这是一个单行注释 INTEGER I I = I+1 /*这是多行注释 这是多行注释 这是多行注释 这是多行注释*/
标识符
标识符是指在脚本中使用的变量、标号、窗口、控制、菜单以及引用的对象的名称。它的命名规则有:
-
必须以字母或下划线开头
-
最长40个字符,并且中间不能插入空格。
-
区分大小写(例如PART,Part和part是不同的),不过在实际编程中尽量不要出现大小写不同,但实际意义一样的标识符,以免混淆。
-
标识符可以有字母、数字和如下的特殊字符组成:短划线“-”、下划线“_”、美元符号“$”,号码符号“#”和百分符号“%”。要注意,在使用减号和‘--’操作符时,需要在它们前后加空格,否则将可能把表达式看做标识符。
例如:butName,main_win,code2都是合适的标识符。
特殊ASCII字符
在字符串当中可以包括特殊字符。它们的写法如下:
新行(NEWLINE):~n
制表符(TAB):~t
垂直制表(VERTICAL TAB):~v
回车(CARRIGE RETURN):~r
换行(FORMFEED):~f
退格(BACKSPACE):~b
双引号:~
单引号:~
弯曲符:~~
也可以使用在符号的后面跟上一个数的方式来表示这个数值对应的ASCII字符。如888,h16(十六进制),o999(八进制)。
空值(NULL)
空值(NULL)是在与数据库交换数据的时候使用的一种特殊值。这与空字符、数值零、和日期00000000不同。空值既不是零,也不是非零的任何数值。
●为变量赋空值的途径有两条:(1)从数据库中读到空值;(2)用SetNull函数赋值。例如:
string beijing //beijing = ""
setNull(beijing) //beijing 为NULL
●在表达式或函数中使用空值时应注意:其参数值为空值的任何函数的返回值为空值,其值为空值的任一表达式的结果为空值
this
代名词this代表窗口、用户对象、菜单、应用对象或者控制对象自身。比方说,在一个静态文本控件的脚本中敲入这样的代码:
this.Modify(text=您好),静态文本上面的文本就会改变为“您好”。
Parent
Parent可以在窗口的控制、用户定制对象和菜单的程序中使用。当在窗口的控制当中使用Parent的时候,Parent指向包容该控制的窗口。比方说如果把下面的语句写入某窗口的一个按钮的CLICKED事件的脚本当中的话,那么在用户单击这个按钮的时候,就会关闭这个窗口。
ParentWindow
ParentWindow只能在菜单的脚本当中使用,它代表运行时菜单所在的窗口,例如:在一条菜单命令的脚本中输入这样的代码的话将会关闭菜单所在的窗口。
Super
在编写控制或者对象的子对象的脚本的时候,可以调用祖先的脚本,用户可以直接使用祖先对象的名称调用它们,也可以使用Super来引用直接双亲。例如要调用父类的Clicked脚本可以这样写:
CALL Super::Clicked
需要注意的是,用户只能在祖先的直接后代的函数和事件当中使用Super,否则编译器将返回语法错误。并且我们只能在子类窗口的事件脚本或者函数当中使用Super,而不能在子类窗口的控制当中使用Super ,否则编译器也将产生语法错误。
续行和断句
大多数情况之下,每一条语句占据一行,可以有的时候会遇到语句超长或者希望多写几行的情况,这时就需要用到续行符&如果行尾的字符恰好是&,那么下一行自动是本行的继续行。
例子:
IF num1 = 5 AND &
num2 = 6 THEN num3 = 7
如果要将一个长字符串分为多行的时候,仅仅需要在行末加入&,编译器就会认为下一行的内容也是这个字符串的内容。
例子:
astring = abcdefghi&
jklmnopqrstuvwxyz
需要注意的是使用这种方法将会把续行符前面的和继续行初始处的空格或者TAB都作为字符串的的一部分,如果希望避免这种情况,可以使用下面的这种格式:
astring = abcdefghi&
+jklmnopqrstuvwxyz
空白
空白包括空格、Tab符、换行符和注释。除非空白被包括在引号中,否则编译器把它看做分界符,而不考虑它们所占的空间,例如:
A + B /这是white space,不被考虑/ + C
" The value of A + B is " //其中空格逐字考虑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现