变量

  • 变量来源于数学, 是计算机语言中能储存计算结果或能表示值抽象概念
  • 变量可以通过变量名访问
  • Z1h语言变量名由字母、数字、符号等字符组成, 首个字符不能为数字

声明变量的一般形式是使用 var 关键字:

var 变量名 = 变量值

全局变量

使用 := 连接变量名和变量值, 可以声明一个全局变量

name := "aaa"

变量作用域

  • 函数、循环体等代码块内, 使用var声明的变量, 作用域仅限于本代码块
  • 如果没有使用var变量声明, 直接 变量名 = 变量值 时, 如果变量名已经存在, 会覆盖值, 否则会创建一个全局变量
  • 使用 变量名 := 变量值 进行声明的变量, 直接成为全局变量

赋值语句

同时声明或赋值多个变量时, Z1h同时支持JavaPython的两种赋值语句风格:

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