Lua-变量与赋值

变量

Lua 中的变量有三种,全局变量,局部变量与表字段。

  • 所有变量都被视为全局变量,除非明确声明为局部变量;
  • 当为变量指定类型为local时,其范围受函数范围限制;
  • 这是一种特殊类型的变量,可以保存除 nil 之外的任何内容,包括函数。

赋值

  • Lua 变量声明支持variable_listvalue_list格式,及从左到右的为其赋值。
    1
    2
    3
    4
    5
    local d, f = 10, 20
    print(d)
    -- 10
    print(f)
    -- 20
  • 遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值
    1
    2
    a, b = b, a
    -- swap 'a' for 'b'
  • 当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略
    1
    2
    1. 变量个数 > 值个数时,按变量个数补足 nil
    2. 变量个数 < 值个数时,多余值会被忽略

索引

对 table 的索引使用方括号[]。Lua 也提供了.操作。

1
2
3
4
5
6
site = {}
site["key"] = "robber.ltd"
print(site["key"])
-- robber.ltd
print(site.key)
-- robber.ltd