开始
lua环境搭建
lua是一个解释型语言,需要有lua解释器。所以,我们需要安装lua解释器。
- 安装解释器
- 执行lua
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | -- 执行lua脚本lua hello.lua
 
 -- 进入交互界面,与python差不多
 lua
 
 Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio
 >
 
 -- 退出交互式界面
 > os.exit()
 
 | 
第一个hello world
在下面这个代码块中,function作为一个函数块,以end结尾,当被调用时使用。注释使用"–",输入的数据使用内置标准库io来读取。使用内置的print函数打印最终值。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 
 | 
 
 
 
 
 
 这是将多行注释的代码让其起作用
 原理:"--[["是一个行注释,"--]]"也是一个行注释,连起来用就是一个块注释。当一个失效,那么这个块注释就会失效,两个注释符号就变成单个的行注释。
 
 
 
 function hello()
 
 print(" hello world ! ")
 end
 
 
 function fact(n)
 
 if n == 0 then
 return 1
 else
 return n*fact(n-1)
 end
 end
 
 
 hello()
 
 print("enter a number : ")
 a = io.read("*number")
 print(fact(a))
 
 | 
| 12
 
 | lua hello.lua     -- 直接运行脚本程序lua -i hello.lua  -- 执行完脚本后就进入交互式界面,这可以用于程序调试
 
 | 
程序块
一个源代码文件或在交互模式下输入的一行代码,都被称为一个程序块 ,一个程序块就是一连串的语句或指令。lua的格式不严格,语句之间不需要分隔符(可以用";"隔开)。
在交互式环境中,解释器检测到代码不足以构成一个完整的程序块,它会等待输入内容,直至可以构成一个完整的程序块。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | 
 a = 1
 b = a*2
 
 a = 1;
 b = a*2;
 
 a=1;b=a*2
 a=1 b=a*2
 
 | 
将lua代码作为lua库
- 库文件
| 12
 3
 4
 5
 6
 7
 8
 
 | function norm(x , y)
 return (x^2+y^2)^0.5
 end
 
 function twice(x)
 return 2*x
 end
 
 | 
- 在交互模式下加载程序库
| 12
 3
 
 | > dofile("lib1.lua") -- 加载库文件> n = norm(3.4,1.0)  -- 使用库文件中的库函数
 > print(twice(n))
 
 | 
- 使用代码加载程序库
词法规范
lua的标识符可以有任意字母、数字和下划线组成,但是不能以数字开头。以下划线开头,后面跟多个大写字母的标识符在lua中留作特殊用途,通常保留标识符"_"作为哑变量使用。
locale关键字可以将字母作为变量名,但是这些字母不能为关键字和保留字。
locale关键字声明的变量是局部变量,只能作用于文件内。
而将值赋值给一个字符,那这个字符就成为全局变量。
未初始化的变量不会引发错误,访问结果是一个特殊的值nil。
如果一个变量只有较短的生命周期,那就用局部变量。通常没必要删除一个全局变量,如果存在一个全局变量,那它必定具有一个非nil的值。
解释器参数
- lua -e 允许在命令行输入代码
| 1
 | lua -e "print("aaa")"  -- 可以直接打印出双引号中的结果
 | 
- lua -l 用于加载库文件
| 1
 | lua -l lib1 -e "a = norm(3 , 4) print(a)" -- 先加载库文件lib1,再在后面执行lib1库文件中的函数
 | 
- _PROMPT 自定义解释器交互界面的提示符
| 12
 
 | lua -i -e "_PROMPT='lua>'"lua>
 
 |