--第四章 语句
--4.1 赋值
Lua支持多重赋值,先对等号右边所有元素求值,然后进行赋值。这可以用来交换变量
x, y = y, x
若值的个数少于变量的个数,则多余的变量会被赋值为nil。
若值的个数多余变量的个数,则多余的值会被丢弃。
--4.2局部变量与块block
局部变量的作用域仅限于声明它们的那个块。
一个快可以是一个执行体、一个函数或者一个chunk
尽可能使用局部变量:
1避免搞乱全局环境
2访问局部变量更快
3局部变量随其作用域结束而消失,GC可以释放其值。
local foo = foo
这里创建了一个局部变量,并用全局变量foo的值来初始化它。这种方式可以加速在当前作用局中对foo的访问。
--4.3控制结构
for有两种形式,数字型for和泛型for
数字型for
for var = exp1, exp2, exp3 do <body> end
var从exp1变化到exp2,步长为exp3。exp3为可选,若不指定,则默认为1
注意:
1三个表达式在for开始前一次性求值。
2控制变量会被自动声明为local。
若要在循环结束后访问控制变量的值,需要将其保存到另一个变量中
local found = nil for i = 1,#a do if a[i] < 0 then found = i break end end print(found)
泛型for
通过一个迭代器函数来遍历所有的值,如ipairs
for i,v in ipairs(a) do print(v) end
数字型for和泛型for的共同点:
1循环变量是循环体的内部变量
2绝不应该对循环变量做任何赋值
时间: 2024-10-26 01:08:41