本文共 2033 字,大约阅读时间需要 6 分钟。
新手教学丨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中不直接支持位操作运算符,如按位与、按位或,等等。因为这种操作比较少见,如果一定需要,可以用函数库的方式提供。
转载地址:http://nvvo.baihongyu.com/