前言
Lua是一种轻量、小巧的脚本语言,用标准C语言编写并以源代码形式开发。设计的目的是为了入到其他应用程序中,从而为应用程序提供灵活的扩展和定制功能。
lua特点
跟其他语言进行比较,Lua有其自身的特点:
(1)轻量级
Lua用标准C语言编写并以源代码形式开发,编译后仅仅一百余千字节,可 以很方便的嵌入到其他程序中。
(2)可扩展
Lua提供非常丰富易于使用的扩展接口和机制,由宿主语言(通常是C或 C++)提供功能,Lua可以使用它们,就像内置的功能一样。
(3)支持面向过程编程和函数式编程
应用场景
Lua在不同的系统中得到大量应用,场景的应用场景如下:
游戏开发、独立应用脚本、web应用脚本、扩展和数据库插件、系统安全上
Lua的安装
下面演示下基于centos7系统安装lua的过程,官网地址:https://www.lua.org
1、官网下载安装包
或者直接在服务器目录下,使用wget命令下载即可
wget https://www.lua.org/ftp/lua-5.4.1.tar.gz
2、解压,编译安装
cd lua-5.4.1make linux testmake install
如果在执行
make linux test失败。需要安装ibreadline-dev
依赖包,需要通过命令来进行安装
yum install -y readline-devel
3、查看lua
使用命令 lua -v ,看到如下内容,说明安装成功
Lua的语法
Lua 和 C/C++ 语法非常相似,整体上比较清晰,简洁。条件语句、循环语 句、函数调用都与C/C++ 基本一致。如果对 C/C++ 不太熟悉, 也没关系,天下语言是一家,基本上理解起来都不会太困难
第一个helloword程序
大家需要知道的是,
Lua
有两种交互方式,分别是
:
交互式和脚本式,这 两者的区别,下面我们分别来讲解下:
交互式之HelloWord
交互式是指可以在命令行输入程序,然后回车就可以看到运行的效果,Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用 :
在命令行中
key
输入如下命令,并按回车
,
会有输出在控制台:
![](https://i-blog.csdnimg.cn/blog_migrate/86e5be43d3a611205187ec5983bac69e.png)
脚本式之HelloWord
脚本式是将代码保存到一个以 lua 为扩展名的文件中并执行的方式
方式一
我们需要一个文件名为 hello.lua, 在文件中添加要执行的代码,然后通过 命令 lua hello.lua 来执行,会在控制台输出对应的结果。
比如在当前目录下,有一个hello.lua的文件,当我们执行,可以看到内容就打印出来了
lua hello.lua
![](https://i-blog.csdnimg.cn/blog_migrate/b2bf22ca45276ea334b3c20ef525d85c.png)
方式二:
做成类似于shell脚本的形式,将
hello.lua
做如下修改
#!/usr/local/bin/luaprint("Hello World!!!")
第一行用来指定
Lua
解释器所在位置为
/usr/local/bin/lua
,加上
#
号标记 解释器会忽略它。一般情况下#!
就是用来指定用哪个程序来运行本文 件。但是hello.lua
并不是一个可执行文件,需要通过
chmod
来设置可执 行权限,最简单的方式为:
chmod 755 hello.lua
使用: ./hello.lua执行该文件 ,可以看到仍然能够正确输出内容
![](https://i-blog.csdnimg.cn/blog_migrate/510aaeaaa494924a6629ca1fa0e1e270.png)
补充一点,如果想在交互式中运行脚本式的
hello.lua
中的内容,我们可 以使用一个dofifile
函数,如:
dofile("lua_demo/hello.lua")
注意
:
在
Lua
语言中,连续语句之间的分隔符并不是必须的,也就是说后面不需要加分号,当然加上也不会报错,
在
Lua
语言中,表达式之间的换行也起不到任何作用。如以下四个写 法其实都是等效的
写法一a=1b=a+2写法二a=1;b=a+2;写法三a=1; b=a+2;写法四a=1 b=a+2
不建议使用第四种方式,可读性太差。