目录
  1. 1. 语句
    1. 1.1. 赋值
    2. 1.2. 局部变量与块
    3. 1.3. 控制结构
chapter4-语句

语句

赋值

  1. 修改变量的值
1
2
a = "hello" .. "world"  
print(a)
  1. 修改table的值
    可以根据key来修改table中对应的value值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- 修改table的值
t = {}
t.n = 1 -- 为table中的key=n赋值value=1
t.n = t.n+1 -- 自动+1
print(t.n) -- 打印出table中key对应的value
```
3. 多重赋值
如果要初始化一组变量,应该为每个变量提供一个值
```lua
-- 多重赋值

c ,d = 10 , 20 -- 一次性给c 和d赋值
print(c , d)

x , y = 100 , 200 -- 先赋值给x,y
x,y = y,x -- 再将x和y的值对换
print(x,y)

e,f,g = 1,2 --三个变量只赋值两个,默认是从左往右赋值。如果要初始化一组变量,应该为每个变量提供一个值
print(e,f,g)

局部变量与块

局部变量的作用域仅限于它们声明的块。所声明的局部变量的作用域从声明语句开始,直至所在块的结尾。
尽可能的使用局部变量,局部变量可以避免将一些无用的名称引入全局环境中。此外,访问局部变量比访问全局变量快。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- 程序块

x = 10 -- 定义一个全局变量

local i = 1 -- 定义一个局部变量

while i < x do -- 这里是用全局变量x循环
local x = i*10 --这里重新定义一个局部变量x
print("test" .. i .. " " .. x) -- 打印局部变量x
i = i+1
end

if i > 20 then
-- body
local x
x = 20
print(x+2) -- 打印if肯定程序块中的局部变量x
else
-- body
print(x) -- 这里没有局部变量,因此打印全局变量
end

print(x)

声明的语句可以包含初始化赋值额外的值会被丢弃,额外的变量会被赋予nil

1
2
3
4
5
6
7
8
9
10
local a , b = 1 , 10

if a < b then
-- body
print(a) -- 这里打印开始定义的局部变量a
local a -- 定义一个内部局部变量a
print(a) -- 打印内部局部变量a
end

print(a , b) -- 这里的a , b 打印的是最外边的局部变量a , b

在lua中局部变量有一个习惯写法

1
2
3
foo = 1   -- 定义一个全局变量
local foo = foo -- 将一个全局变量的值赋值给局部变量,作为局部变量的初值
print(foo)

控制结构

文章作者: rack-leen
文章链接: http://yoursite.com/2019/08/17/Lua/Lua%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%AC%94%E8%AE%B0/part-1/chapter4-%E8%AF%AD%E5%8F%A5/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 rack-leen's blog
打赏
  • 微信
  • 支付宝

评论