Lua基本语法简述
回到:
lua运行方式
- lua解释器直接执行lua代码文件:lua test.lua
- lua脚本方式执行,在代码文件第一行加上shabang,例如
#!/usr/bin/lua
- lua命令的-e选项,例如:
lua -e 'print("Hello World")'
- 可进入lua交互式Shell,直接输入lua命令即可
- 设置
_PROMPT
全局变量可设置交互式lua shell的命令提示符 lua -i -e '_PROMPT = "lua> "'
,其中-i表示先执行代码,再进入交互式Shell
lua关键字
lua没有case语句。
1 | not and or |
lua运算符
1 | -- 没有自增自减运算a++,没有运算且赋值运算a+=1 |
位操作符是Lua 5.3引入的。
除了求幂运算符^
和字符串串联符号..
外,其它操作符都是以从左向右的顺序运算的。但是^ ..
这两个运算符是右结合优先的。
1 | 3 ^ 2 ^ 2 --> 3^(2^2) |
加法运算只适用于数值类型,如果相加涉及字符串,则尝试对字符串进行隐式数据转换。无法转换则报错。
字符串串联则尝试转换成字符串。
1 | 3 + "3" --> 6.0 |
lua注释
1 | print("Hello World") --comment |
特别地,想要重新启用块注释里的代码,只需如下加上一个开头的短横线即可:
1 | ---[[ -- 这是单独的行注释,而非块注释 |
lua标识符
大小写字母、数字、下划线可参与命名。
- 不能数字开头
- 约定俗成地,
_
当作哑变量 - 下划线开头后全是大写字母的作为特殊对待的符号,应避免使用,如
_VERSION
语句解析:分号和换行
下面是等价的:
1 | a = 1 |
lua全局变量
全局变量可无需声明直接引用,对于未赋值的全局变量,访问时其值为nil。
1 | print(b) -->nil |
赋值变量后,可重新将nil赋值给它来表示该变量未定义:
1 | b = 10 |
lua命令行的参数解析
lua在代码开始执行前,先解析命令行参数,它会将参数保存在一个名为arg
的table中(table即关联数组或hash结构),脚本名称为arg[0]
,第一个位置参数为arg[1]
。
此外,lua命令允许-e "program"
和lua代码文件同时执行,此时脚本名前面的参数全保存在负数索引中。
例如:
1 | lua -e 'print("hello world")' test.lua a b |
那么:
1 | arg[0] = "test.lua" |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙!
评论