注释
- 单行注释: 两个减号 –
- 多行注释: --[[ 多行注释 --]]
标识符
第一个字母可以是大小写字母或者下划线,其他位除上述之外可以是数字
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
关键字
and、break、do、else、elseif、end、false、for、function、if、in、local、nil、not、or、repeat、return、then、true、until、while
全局变量
在访问不存在的全局变量时不会报错,创建全局变量只需要赋值,删除变量只需要将全局变量的值置为nil
> print(b) --此时无全局变量b
nil
> b = 10 --为全局变量b赋值
> print(b)
10
> b = nil --删除全局变量
> print(b)
nil
>
自定义全局变量可以采用_加大写字母的方式,例如:_NAME
数据类型
lua是动态类型语言,共有8个数据类型,nil、boolean、number、string、userdata、function、thread、table
nil
代表没有值,可以采用赋值的方式jin
string
- string:字符串可以用" "或者[[ ]]进行定义
- 数字在相加时,lua会将字符串的数字自动转换成number
- string相加用 . ., 例如"aaa". .“bbb"的值为"aaabbb”
- 用#"aaa"计算数据的长度,例如#"aaaa"的值是4
- 用type(data)判断数据data的类型
table
- lua中的表table
> local a = {} --局部变量
> local a = {"a", "b"}
> type(a) --没有找到全局变量a
nil
> a = {}
> type(a)
table
> a[10] = 20
> a[10]
20
> a = nil
> a[10] = 20 --删除a之后a不再是table,不能采用这种方式进行赋值
stdin:1: attempt to index a nil value (global 'a')
stack traceback:
stdin:1: in main chunk
[C]: in ?
- 不同于其他的语言,lua数组的下标是从1开始的
> a = {"a", "b", "c"}
> for key, value in pairs(a) do
>> print(key)
>> end
1
2
3
>
- table的大小是不固定的,当添加数据时,table变大,table没有值时是对象:table: 0x7f8b5ad080e0