目录
  1. 1. 开始
    1. 1.1. lua环境搭建
    2. 1.2. 第一个hello world
    3. 1.3. 程序块
      1. 1.3.1. 将lua代码作为lua库
    4. 1.4. 词法规范
    5. 1.5. 解释器参数
chapter1-开始

开始

lua环境搭建

lua是一个解释型语言,需要有lua解释器。所以,我们需要安装lua解释器。

  1. 安装解释器
1
sudo pacman -S -y lua
  1. 执行lua
1
2
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函数打印最终值。

1
2
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)
-- 如果输入的数是0,则阶乘直接返回1
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))
  • 执行脚本
1
2
lua hello.lua     -- 直接运行脚本程序
lua -i hello.lua -- 执行完脚本后就进入交互式界面,这可以用于程序调试

程序块

一个源代码文件或在交互模式下输入的一行代码,都被称为一个程序块 ,一个程序块就是一连串的语句或指令。lua的格式不严格,语句之间不需要分隔符(可以用";"隔开)。
在交互式环境中,解释器检测到代码不足以构成一个完整的程序块,它会等待输入内容,直至可以构成一个完整的程序块。

1
2
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库

  1. 库文件
1
2
3
4
5
6
7
8
-- 结果是根号下的x的平方加上y的平方
function norm(x , y)
return (x^2+y^2)^0.5
end

function twice(x)
return 2*x
end
  1. 在交互模式下加载程序库
1
2
3
> dofile("lib1.lua") -- 加载库文件
> n = norm(3.4,1.0) -- 使用库文件中的库函数
> print(twice(n))
  1. 使用代码加载程序库

词法规范

lua的标识符可以有任意字母、数字和下划线组成,但是不能以数字开头。以下划线开头,后面跟多个大写字母的标识符在lua中留作特殊用途,通常保留标识符"_"作为哑变量使用。
locale关键字可以将字母作为变量名,但是这些字母不能为关键字和保留字。
locale关键字声明的变量是局部变量,只能作用于文件内。
而将值赋值给一个字符,那这个字符就成为全局变量。
未初始化的变量不会引发错误,访问结果是一个特殊的值nil。
如果一个变量只有较短的生命周期,那就用局部变量。通常没必要删除一个全局变量,如果存在一个全局变量,那它必定具有一个非nil的值。

解释器参数

  1. lua -e 允许在命令行输入代码
1
lua -e "print("aaa")"  -- 可以直接打印出双引号中的结果
  1. lua -l 用于加载库文件
1
lua -l lib1 -e "a = norm(3 , 4) print(a)" -- 先加载库文件lib1,再在后面执行lib1库文件中的函数
  1. _PROMPT 自定义解释器交互界面的提示符
1
2
lua -i -e "_PROMPT='lua>'"
lua>
文章作者: 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/chapter1-%E5%BC%80%E5%A7%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 rack-leen's blog
打赏
  • 微信
  • 支付宝

评论