快速掌握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。
相关文章推荐
- openresty lua学习笔记
- Lua 独立解释器
- Lua 全局变量
- lua_state
- Lua 命名规范
- Lua chunk(程序块)
- Lua 运行你的第一个HelloWorld
- leetcode——Evaluate Reverse Polish Notation 求算式值(AC)
- [LeetCode] Evaluate Reverse Polish Notation, Solution
- Lua脚本语言简明入门教程
- Lua & C 交互 3 c/c++调用lua
- Lua & C 交互 2 尝试操作lua栈
- Lua & C 交互 1 环境搭配
- luci 打印函数封装
- Lua 与C 交换 第一篇
- Lua中的模块与module函数详解
- Lua模块和模块载入浅析
- Lua协同程序coroutine详解
- lua里面求int数组的union,diff,inter,distinct 方法实现
- Lua函数闭包解析