新手教学丨UiBot的变量与常量、表达式运算符
今天我们来讲解下UiBot中的变量与常量,以及表达式运算符。
一、定义变量
UiBot中的变量是动态类型的,无需再定义的时候声明变量的类型,即变量的值和类型都可以在运行过程中动态改变。这也符合一般脚本语言如Python、Lua、JavaScript的习惯。
定义变量名的方式是:
Dim 变量名
再定义变量名的同时
可以给变量赋值一个初始值:
Dim 变量名 = 值
想要定义多个变量的话
可以这样定义:
Dim 变量名=值, 变量名1
Dim 变量名=值, 变量名=值
同理
想要定义一个常量就可以这样定义:
Const 常量名=值, 常量名=值
变量名的定义基础规范:
变量名可以用英文字母、下划线(_)
任意UTF-8编码中包含的
除英语以外其他语言的字符
(当然,也包括汉字)表示
除了第一个字符外
后面还可以使用0-9的数字。
变量名不区分大小写。
二、变量类型
UIBot中变量的类型分为以下几种:
整数型、浮点数型、布尔型
字符串型、函数型、复合型和空值型
整数型
整数型的值可以以十进制或者十六进制的方式表示,其中十六进制需加前缀 &H 或 &h
范例:123, &HFA, &hFA
浮点数型
浮点数的值可以用常规方式或者科学计数法方式表示。如0.01或者1E-2或者1e-2均代表同一个浮点数
范例:11.235, 2E3, 2e3
布尔型
布尔型的值仅有True或者False,两者皆不区分大小写, True表示真, False表示假,布尔型变量中非真即假
字符串型
字符串型的值用一对单引号(’)或一对双引号(”)所包围
范例:"字符串", '字符串'
字符串转义
在字符串中会用一些特殊符号来表示一些特定的含义:
\t 代表制表符,用 \n 代表换行,用 \’ 代表单引号,用 \” 代表双引号,用 \\ 代表反斜杠本身
长字符串
可以用前后各三个单引号来('’’)表示一个字符串,这种字符串被称为长字符串。在长字符串中,可以直接写回车符、单引号和双引号,无需用\n,\’或者\”
范例:'''字符串第一行,
字符串第二行,
字符串第三行'''
函数型
函数型的值只能是已经定义好的函数
空值型
空值型的值总是Null,不区分大小写
复合型的变量类型包含了
数组、字典两种类型
两种类型的定义和普通变量类似
数组类型的变量的表示
使用小写方括号包围起来,使用逗号来分隔每个元素,和VBScript中的数组类似
范例:Dim 数组变量 = [值1, 值2, 值3, 值4,]
其中值可以是任意类型,同一个数组中的不同值也可以是不同类型,值甚至可以是另外一个数组,这样就构成了一般意义上的多维数组
范例:Dim 数组变量 = [值1, 值2, [值11, 值22], 值4,]
字典类型的变量这样表示
使用大括号来包围起来,名字和其对应的值为一对,用逗号分隔,和Lua中的Table数据类型相似
{ 名字1:值1, 名字2:值2, 名字3:值3 }
其中 名字 只能是字符串,值可以是任意类型的表达式。这种初始化方法和JSON的表示形式一致
复合型变量的使用方式
无论是数组还是字典,要引用其中的元素,均采用方括号作为索引,如果要引用数组中的数组(即多维数组),或字典中的数组,可以继续在后面写新的方括号
范例:Dim 变量名 = [486, 557, 256]
TracePrint 变量名[1]
变量名 = {"key1":486, "key2":557, "key3":256}
TracePrint 变量名["key1"]
变量名 = {"key1":486, "key2": [235, 668], "key3":256}
TracePrint 变量名["key2"][1]
在引用数组或字典中的元素时,数组的索引只能是整数类型,用0作为起始索引;字典的索引只能是字符串类型。如果未能正确的使用,会在运行时报错并触发异常
三、表达式运算符
UiBot语言中的运算符及其含义如下:
【 + 】加法
【 - 】减法/求负
【 * 】乘法
【 / 】除法
【 Mod 】取模
【 ^ 】求幂
【 < 】大于
【 > 】小于
【 <= 】大于等于
【 >= 】小于等于
【 <> 】不等于
【 = 】等于
【 And 】逻辑与
【 Or 】逻辑或
【 Not 】逻辑非
【 & 】字符串连接
把变量、常量和值用运算符和圆括号 ( ) 连接到一起,称为表达式,这和VBScript中的语法类似,常用于逻辑语句中的判断
Dim 变量
If (变量 = 1) or (变量 = 5)
TracePrint 变量
End If
需要注意的是,和VBScript中的运算符不同,UiBot中不直接支持位操作运算符,如按位与、按位或,等等。因为这种操作比较少见,如果一定需要,可以用函数库的方式提供。