--变量类型:全局变量,局部变量,表中的域 --[[ --Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 --局部变量的作用域为从声明位置开始到所在语句块结束。 --变量的默认值均为 nil a=5 --全局变量 local b=6 --局部变量
function joke() c=4 --尽管在函数中,也是全局变量,除非用local声明 local d=7 end
joke() print(c,d) --输出结果为4 nil ,则local表示的是局部变量,d打印出来的值为nil
do local a=6 b=6 --为局部变量重新赋值 print(a,b) end
a=3 --为全局变量重新赋值 print(a,b) --]]
--赋值语句 --[[ --1,Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。 a,b=6,7 print(a,b) --2.交换变量的值 -- x,y=y,x -- a[i],a[j]=a[j],a[i] --3, --a. 变量个数 > 值的个数 按变量个数补足nil --b. 变量个数 < 值的个数 多余的值会被忽略 a,b,c=0,1 print(a,b,c) c,d=7,8,9 print(c,d) --多值赋值经常用来交换变量,或将函数调用返回给变量: --a,b=f()
f()返回两个值,第一个赋给a,第二个赋给b。
应该尽可能的使用局部变量,有两个好处:
1. 避免命名冲突。 2. 访问局部变量的速度比全局变量更快。 --]]
--索引 对table的索引使用方括号[],也可使用. 来操作 --[[ site={} site["key"]="www.runoob.com" print(site["key"]) print(site.key) --]]
|