安装
入手《七周七语言》挺久的了,一直拖延没看,今天开始,本书第一个介绍的是Lua,早之前听说过可以用来写游戏脚本,这次尝试一下
如无特别说明,以下命令均在 centOS 7 执行
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install
过程中可能会出现fatal error: readline/readline.h: No such file or directory
错误,这是因为缺少依赖包造成的
redhat 系列下这个软件包叫 readline-devel ubuntu 下叫 readline-dev 细分又分为 libreadline5-dev 和 libreadline6-dev
这不是本文重点,所以只要解决问题就行了,执行
yum install readline-devel
安装成功后继续
make linux test
make install
lua -v
出现这个Lua的版本号Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
代表安装成功了,接下来可以愉快的玩耍了。
Hello World镇楼,输入lua进入REPL(Read-Eval-Print Loop)
print("Hello World!!!")
或者
"Hello world"
以上内容可能会显得冗长,因为并没有区分本篇是给小白看的,还是当作自己的笔记,不过秉着烂开始原则,直接先写了,后期搞明白定位了文风再变。
开始
语法
Lua没有;
作为结束符,也不用拿着游标卡尺量空格的缩进,甚至两个语句之间的区分只要一个空格就行,只要你不怕别人看了你的代码掀桌子,这样写也是可以的。
print("no time") print("for love")
详细的命名规范以及词法、语法、流程控制等,可以参考以下几个站点的教程,都写得很详细。
函数
- 函数是一等公民,可以赋值给变量,可以当作参数传递,可以被保存在数据结构中
以下就直接照着书上徒手敲一遍,保存成.lua文件,执行一下
function call_twice(f)
ff = function(num)
return f(f(num))
end
retirn ff
end
function triple(n)
return n*3
end
test = call_twice(triple)
=test(5)
输出结果是45,果然好看的代码根本无需解释(因为太短),一看就明白了
特点
- lua是动态类型的脚本语言,即解释执行
- 可以基于table实现自己的范式——过程式、面向对象、事件驱动等