var 变量和赋值
声明一个具有指定类型的变量:
var x: int # x 的值为默认值 0
连续声明几个相同类型的变量:
var x, y, z: int
同时声明几个具有不同类型的变量:
var # 注意,var 必须单独一行# 这里可以加注释,也可以不加x, y: int# 这里可以加注释,也可以不加s, t: string
声明变量时并赋初值:
var x: int = 1var x, y: int = 2 # x 和 y 的值都为 2var x, y: int = 2, 3 # 不支持这种写法
如果初值的类型确定,那么声明变量时可以不指定类型,编译器自动推断类型:
var x, y = 2 # x 和 y 都是 int
var 变量的值可以通过赋值运算符 = 改变:
var x, y = 2x = 3echo x, y # 输出 23
常量
常量被绑定上固定的值,且不可变。常量的值必须要能够在编译时被确定。
const s: string = "Hello" # 明确指定类型的常量const t = "world" # 推断出类型的常量consta = 1 # a 的值在编译时确定为 1b = a + 3 # b 的值也能在编译时确定
let 语句
let 语句声明一个变量,但是这个变量的值不可变:
let x, y = 1x = 2 # 语法错误,let 声明的变量值不可变
let 和 const 是有区别的!
const要求编译器在编译阶段对常量进行求值let是说,变量被声明后就和初值绑死了,不可以再对其赋值
这意味着,let 变量的是是可以在运行时求出来的:
const input = readLine(stdin) # 不可以,编译时无法确定 input 的值let input = readLine(stdin) # 可以
