变量
变量的作用域涉及到变量的作用范围,可见性,还涉及到变量的回收。
局部变量
- 局部变量需要明确的使用local修饰;
ret=1 //全局变量
func isvalid()
ret = ret + 1 //使用的是全局变量
local ret = 0 //局部变量
return ret //返回的是局部变量0
end
-
除此之外for(), foreach(), while(),括号里面的变量默认也是局部变量,作用域在整个代码段执行周期。
-
func函数内部变量默认作用域是函数的整个执行周期
全局变量
除了上面所说的局部变量外,默认都是全局变量
变量的回收(gc)
变量超过了作用域就会自动释放计数,无引用就会被释放
弱类型
并不需要明确指定变量的类型,解析器会自动判断,为了简便,牺牲了某些平台和浪费了一些空间:整数默认用int64,浮点数默认用double。
sum=10 //int64
a=1.0 //double
b = a * sum //double
c = "10" //string
m = 1 + 2 + 4 //int64
var = "abc" + 123 //string: "abc123"