您的位置:首页 > 编程语言 > Lua

快速掌握Lua 5.3 —— 让我们开始吧

2016-01-12 17:12 239 查看

Q:什么样的文件是Lua脚本?

A:存储了使用Lua语言编写的脚本的文件都可以称作Lua脚本,但一般为了一眼就能看出来,将文件的后缀命名为.lua。

Q:如何启动Lua?

A:

1、命令行中输入
lua
,这样会启动Lua的“stand-alone interpreter”模式,可以像使用shell一样使用它。

2、将Lua脚本存入“*.lua”文件中,命令行中使用
lua *.lua
执行脚本。

Q:Hello World?

A:
print("Hello World")
。即可以在“stand-alone interpreter”模式中执行,也可以将其写入文件执行。

Q:如何退出Lua的“stand-alone interpreter”模式?

A:优雅一些的做法是
Ctrl-D
或者
os.exit()
;暴力一些的做法可以是
Ctrl-C


Q:什么是“Chunks”?

A:一段代码,就好像C语言中“{}”括起来的代码段一样。

Q:在Lua的“stand-alone interpreter”模式下,为什么有时候提示符变成了“>>”?

A:Lua交互模式的默认提示符是“>”,你每按一次回车,lua都会把你之前输入的东西认为是一个chunk。但如果Lua判断出你输入的东西不是一个完整的chunk,则提示符会变为“>>”用以提示你将未完成的chunk输入完整。

Q:
lua -l a.lua -l b.lua

A:“-l”选项可以将指定文件中的代码加载至当前脚本并执行(实际上通过require实现)。如问题中的例子,可以理解为先执行a.lua中的代码,再执行b.lua中的代码。

Q:
lua -i b.lua

A:“-i”选项代表在执行完指定的脚本后立即进入“stand-alone interpreter”模式。

Q:
dofile("a.lua")

A:加载指定文件中的代码并执行。

Q:如何使用变量?

A:Lua中的变量无需声明,直接赋个值就可以使用,默认都是全局的(想创建局部变量需要
local
关键字)。甚至于使用未初始化的变量也不会报错,得到的值是
nil


> print(x)

nil

> x = 9

> print(x)

9

Q:变量的命名规范?

A:由字母,数字,下划线组成,不能以数字开始。以下划线开头的并且全是大写的变量名很可能是保留变量,小心使用。

Q:Lua中的关键字?

A:

and break do else elseif end false for function if in

local nil not or repeat return then true until while

Q:是否对大小写敏感?

A:是。

Q:如何注释代码?

A:使用
--
注释一行代码;使用
--[[ ]]
注释一段代码。

Q:有的lua脚本中第一行类似于
#!/usr/local/bin/lua

A:指定脚本解释器,就好像shell的一样。指定了脚本解释器的lua脚本可以直接被调用,而无需使用
lua
命令。

Q:
lua -e 'print("Hello World!")'"

A:”-e”选项允许在命令行上直接执行脚本。

Q:如何向lua脚本传递参数?

A:lua脚本接收的参数保存在一个名为
arg
的的变量中,它实际是一个”table”,使用方式类似于C语言中的数组。

[code]-- a.lua文件的内容。
print("The first arg is:", arg[1])
print("The second arg is:", arg[2])
print("The third arg is:", arg[3])


prompt> lua a.lua 5 7 9

The first arg is: 5

The second arg is: 7

The third arg is: 9

附加:

1、Lua中每行的结尾可以不写分号,甚至同一行的两条语句之间都可以不写。不过按照惯例还是写比较好,代码也更美观。

2、更改“_PROMPT”变量的值可以更改Lua的“stand-alone interpreter”模式下的默认提示符:

> _PROMPT=’my_prompt>’

my_prompt>

3、想要删除一个全局变量,可以将其值赋为
nil
,Lua会回收其所占的内存空间。

4、变量名字中的字母字母不仅可以是英文字母,还可以是你所使用的语言中的字母。不过不建议这么写,因为在不支持这种语言的机器上你的程序将无法运行。

5、lua的变量类型是动态的,不用指定类型,你给它什么类型的值,他就是什么类型的。

6、Lua中所有未初始化的变量的值都是
nil
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: