参考文档 BotScript 变量与类型速查

BotScript 变量与类型速查

语法片段一页集成,配合第 3 课使用。后续语法课会继续往这里加。

定义与赋值

Dim a                 // 只声明,值为 Null
Dim b = 1             // 声明并赋值
Dim c, d = True       // 定义两个变量,只给 d 赋值
a = 1                 // 直接赋值(也可不声明)
Const e = 'Laiye'     // 常量:定义后不可再改
Const f               // 错误:常量必须有初始值

可视化视图对应命令:基本命令 ▸ 变量赋值。

命名规则

数据类型

类型写法示例
整数型十进制,或 &H 前缀十六进制3、&HFF
浮点数型常规或科学计数法0.01、1E-2
字符串型一对单/双引号;'''...''' 为长字符串"小明"、'Laiye'
布尔型True / False(不分大小写)True
空值型Null(不分大小写)Null
复合型数组 [ ]、字典 { }(另见数组/字典专题)[1,2,3]、{"k":1}

动态类型:变量类型随值变化,无需声明类型。

转义字符(字符串内)

写法含义
\n换行
\t制表符
\'单引号
\"双引号
\\反斜杠本身

运算符

算术 / 连接 + 加 · - 减/求负 · * 乘 · / 除
& 连接字符串
^ 求幂 · Mod 取余数
比较 / 逻辑 < <= > >= <> 不相等 · = 相等
And 与 · Or 或 · Not 非

注意:= 单独成句是赋值,出现在表达式里是判断相等。字符串拼接用 &,不是 +。

逻辑语句

条件分支(无 Then)
If 条件
    语句块
ElseIf 条件2
    语句块
Else
    语句块
End If
多重等值分支
Select Case 表达式
    Case 值1, 值2
        语句块
    Case Else
        语句块
End Select

要点:BotScript 的 If 后不写 Then;条件应为布尔型,否则自动转换。End If / End Select 收尾。

循环语句

计次循环(固定次数)
For i = 起始 To 结束 Step 步长
    语句块
Next

Step 可省(默认 1);循环变量不用 Dim,循环后失效。

遍历循环(数组/字典)
For Each 值 In 数组或字典
    语句块
Next

For Each 索引, 值 In 字典
    语句块
Next
条件循环
  • Do While 条件 ... Loop(先判断,真则循环)
  • Do Until 条件 ... Loop(先判断,假则循环)
  • Do ... Loop While 条件(后判断,至少一次)
  • Do ... Loop Until 条件(后判断,至少一次)
  • Do ... Loop(无限,需自行 Break)
跳出语句
Break跳出整个循环
Continue结束本次,开始下一轮
Exit结束整个流程

Break/Continue 只能在循环体内。

数组与字典(复合类型)

数组:一排带编号的格子(下标从 0 起)
Dim a = [31, 28, 31]
a[0]              // 31(第一个)
Dim 混合 = [1, "小明", True]
Dim 表 = [["张三","语文"],["李四","数学"]]
表[1][0]          // 李四(二维)
字典:按名字取值(键只能是字符串)
Dim d = {"姓名":"张三", "年龄":"26"}
d["姓名"]         // 张三
d["年龄"] = "30"  // 修改
d["性别"] = "男"  // 新增一项
操作写法
遍历数组For Each 值 In 数组 ... Next
遍历字典(名字+值)For Each 键, 值 In 字典 ... Next
别名陷阱b = a 只是取别名,b[1]=99 会改到 a
追加元素命令:数组 ▸ 在数组尾部添加元素
筛选元素命令:数组 ▸ 过滤数组数据
文本转数组命令:字符串 ▸ 分割字符串

数据表(DataTable)= 带表头的二维数组,可排序、筛选;构建数据表用一维数组做表头、二维数组做数据。读 Excel 常得到数据表。

注释

// 单行注释
/* 多行
   注释 */

大小写与换行

常用内置命令(同时也是函数)

命令作用
TracePrint(...)输出调试信息(可视化命令:输出调试信息)
Delay(ms)延时若干毫秒
转为文字数据把数值等转为字符串,便于拼接
转为整数数据把文本等转为整数