跟学习其他的编程语言一样,学习Lua从hello world开始。
新建一个文件,hello.lua,内容为 print("hello world")。
在shell界面,输入lua hello.lua
![](https://box.kancloud.cn/2016-09-06_57ce5eec9ef5c.PNG)
下面定义个函数
新建一个文件 func_test.lua
内容如下:
~~~
-- define a factorial funcition
function fact (n)
if n == 0 then
return 1
else
return n * fact(n-1)
end
end
print("enter a number:");
a=io.read("*number") -- read a number
print(fact(a))
~~~
运行
![](https://box.kancloud.cn/2016-09-06_57ce5eecb77ff.PNG)
关于语句块
lua在连续语句之间是不需要分隔符的,例如下面的4个语句块是等价的。
~~~
a = 1
b = a*2
a = 1;
b = a*2;
a = 1; b = a*2;
a = 1 b = a*2 -- ugly, but valid
~~~
上面的两个示例,我们是将code写到文件中去运行的,还有另一种方式也可以运行lua语句,就是在交互模式下
在shell模式下,输入lua,不带任何参数,会进入交互模式
![](https://box.kancloud.cn/2016-09-06_57ce5eeccb2d1.PNG)
要退出交互模式,可以用ctrl+d或者输入os.exit()
在得到上图所示的状态后,可以直接输入lua语句运行,lua会把每一行当成一个完整的块来对待,如果它检测到一行构不成一个完整的块,那么它会等待块输入完成。
![](https://box.kancloud.cn/2016-09-06_57ce5eecdea8d.PNG)
在交互模式下,也可以通过dofile函数来执行lua脚本文件,也可以在执行了一个文件以后通过 -i 选项让lua进入到交互模式,示例如下,我们将上面的func_test.lua改成lib.lua,并将最后3行注释掉
![](https://box.kancloud.cn/2016-09-06_57ce5eed0084f.PNG)
![](https://box.kancloud.cn/2016-09-06_57ce5eed159bb.PNG)
水平有限,如果有朋友发现错误,欢迎留言交流。