Lua 的安装与入门教程

JAVA herman 195浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

Lua 语言出生于 1993 年,在近年来被逐渐放大。Lua 很小,编译后通常只有几百 kb,比我们常见的 Shell 都还要小。所以很多系统或项目都采用 Lua 作为脚本语言。

常见的游戏脚本,Nginx,Wireshark,OpenResty,Redis 等都是把 Lua 作为底层的的脚本来实现一些扩展功能。

Lua 虽然很火,但是网上针对 Lua 的系统学习资料非常的少,不仅如此,还非常的不全,同时还存在不少的小坑。我最近就遇到了几个,于是我不得不,从官网阅读帮助文档,从零开始,码出未来!

首先是安装,虽然是简单,但是往往是最简单的,需要的人最多。

我这里以 Mac 为例,安装有两种方法。

第一种是,通过 Homebrew 来安装。

#搜索 lua 软件
brew search lua
#执行安装命令
brew install lua@5.1

使用 Homebrew 的缺点就是,非最新版,因为截止到我的这篇文章,官方最新稳定版本已经到 5.3 了。所以,我采用就是第二种方法。

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar zxf lua-5.3.5.tar.gz
cd lua-5.3.5
# Linux 使用 make linux test
# Mac 使用 make macosx test
make macosx test

编译完成后,src 目录下会生成 3 个主要的文件:lua(解释器),luac(编译器)和 liblua.a(库)。

上面我们在编译完成后,顺带执行了 test 测试。test 其实就是执行 src/lua -v,输出版本号。

src/lua -v
#或者
make test

当我们编译过 lua 后,我们就可以进行安装了,要注意权限问题,否则会报 Permission denied 或 make: *** [install] Error 1 等问题。

cd lua-5.3.5
make macosx
sudo make install

待安装完成后,我们就可以开始完整 lua 了。先来一个 hello world!

Lua Hello World

也可以把多行代码,写在文件中,然后执行文件。比如,我们在 xttblog.lua 文件中写入下面的代码。

print("Hello World")
print("www.xttblog.com")

然后,执行 lua xttblog.lua 就可以运行了。
lua 也支持注释,两个减号“–”是行注释,–[[块注释–]]。

print("Hello World")
print("www.xttblog.com”)
--我是行注释
--[[我是块注释
我可以换行--]]

Lua 的变量很简单,Lua 的数字只有 double 型,64 位的浮点运算处理速度也很快。除非大于 100,000,000,000,000 的数字,可能会有精度问题。

num = 1024
num = 52.0
num = 1314.520
num = 520.16e-2
num = 0.88816E1
num = 0xff
num = 0x56

0x 开头的是 16 进制,这点和 C 很像。

lua 的字符串很有特点。字符串可以用单引号,也可以用双引号,还支持C类型的转义,比如: ‘\a’ (响铃), ‘\b’ (退格), ‘\f’ (表单), ‘\n’ (换行), ‘\r’ (回车), ‘\t’ (横向制表), ‘\v’ (纵向制表), ‘\’ (反斜杠), ‘\”‘ (双引号), 以及 ‘\” (单引号)。

str = 'xttblog\n123"'
str = "xttblog\n123\""
str = '\97xttblog\10\04923"'
str = [[xttblog
123"]]

可以看到,lua 还支持两个中括号包含有换行的字符串,这一特性很多语言都有,Java 除外。

Lua 中的 null 是用 nil 表示的。这一点从 Redis 中也可以看出。

v = UndefinedVariable
-- UndefinedVariable 是未定义的变量,所以,v = nil

布尔类型有 3 个值,分别是 nil、false,true,数字 0,‘’空字符串(’\0’)都是 true!nil 和 false 都代表 false。

lua 中的变量默认情况下全是全局变量,那怕是语句块或是函数里。只有在变量前加 local 关键字的才是局部变量。

theGlobalVar = "全局变量"
local theLocalVar = "局部变量"

关于 Lua,这篇文章先做个结尾,下篇我们学习分支,循环等内容。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » Lua 的安装与入门教程