现在的位置: 首页 > 综合 > 正文

Ubuntu安装lua并基本使用

2013年05月12日 ⁄ 综合 ⁄ 共 1145字 ⁄ 字号 评论关闭

最近因为要深入应用premake,所以得学点lua.

Ubuntu13.04下安装命令:

apt-get install lua5.2 lua5.2-doc

版本是5.2.1, 不算最新,不过也很新了。官方参考在这里:http://www.lua.org/manual/5.2/

这是动态语言,变量无需声明其类型,变量的值就自带了类型。一共有以下8种类型:

nilbooleannumberstringfunctionuserdatathread, and table

number是浮点数。

string是不可变类型,有点像Java。

userdata就是保存C的struct. full userdata是内存有lua分配的userdata, 如果是内存有宿主语言(host)分配的,叫做light userdata.

thread这里不是操作系统的线程,而是lua的一个协同程序(coroutines), 甚至可以在不支持线程的平台上模拟出线程的特性。

table 一个关系数组,可以用除nil之外的任何类型做索引(key), 包含了key和value, 可以用来表示数组,符号表,集合,记录,图和树等。真复杂,希望我不要用到。:)

table, function, thread和 full userdata 被使用时都是当作对象,变量只是引用它们的地址,并不拷贝它们。参数传递,函数的返回值和复制都是如此,不会深拷贝。

在lua官方站点找不到一个上手的例子,没有helloworld。要的话就去买书?我不想成为专家,只是想完成我的premake构建而已。书就不必了。Google一下,找到一篇文章:

http://www.thegeekstuff.com/2009/12/lua-hello-world-example-how-to-write-and-execute-lua-program-on-linux-os/

现在开始。用emacs创建hello1.lua文件。

#!/usr/bin/lua

-- hello world lua program
print ("Hello World!")

然后运行命令:

codes/study/lua$ lua hello1.lua
Hello World!

成功了,现在学到一个lua函数print。

稍微改动一下,把字面常量换成变量,也work.

#!/usr/bin/lua

-- hello world lua program
str = "Hello World!"
print (str)

现在试一下if语句和字符串比较

#!/usr/bin/lua

-- hello world lua program
str = "Hello World!"
print (str)

if str == "Hello World!" then
print "ok"
end

抱歉!评论已关闭.