变量
- 变量来源于数学, 是计算机语言中能储存计算结果或能表示值抽象概念
- 变量可以通过变量名访问
- Z1h语言变量名由字母、数字、符号等字符组成, 首个字符不能为数字
声明变量的一般形式是使用 var
关键字:
var 变量名 = 变量值
全局变量
使用 :=
连接变量名和变量值, 可以声明一个全局变量
name := "aaa"
变量作用域
- 函数、循环体等代码块内, 使用var声明的变量, 作用域仅限于本代码块
- 如果没有使用var变量声明, 直接
变量名 = 变量值
时, 如果变量名已经存在, 会覆盖值, 否则会创建一个全局变量 - 使用
变量名 := 变量值
进行声明的变量, 直接成为全局变量
赋值语句
同时声明或赋值多个变量时, Z1h同时支持Java
和Python
的两种赋值语句风格:
Java风格(js等)
变量名1 = 值1, 变量名2 = 值2;
aaa = 111, bbb = 222
print({aaa, bbb})
Python风格(go等)
变量名1, 变量名2 = 值1, 值2;
aaa, bbb, ccc = 111, 222, 333
print('声明后:', {aaa, bbb, ccc})
aaa, ccc, bbb = bbb, aaa, ccc
print('调换后:', {aaa, bbb, ccc})
这两种风格的区别在于, 前者是依次执行的, 后者是同时执行的, 后者可以用来置换两个变量的值, 省去临时变量
更多示例
aaa = 123, bbb = aaa * 2
// 这样是可以的, 因为相当于先声明了aaa再声明bbb, bbb的值为246
aaa = 123, bbb = 456
aaa, bbb = bbb, aaa
// 这种风格可以直接交换值, aaa变成456, bbb变成123, 超过2个变量时也同理
AAA, BBB = 123, AAA * 2
// 这样是不可以的, 会报错No params named aaa