aul 语法约定和命令行方式

原文链接:http://www.douban.com/group/topic/17549829/

话说看文字性的定义和注意事项最无聊了,所以就来大朵大朵的摘抄吧。 
先来热身一下吧! 

进入和退出交互环境 
在命令行中输入 lua 回车就会以交互模式运行 lua,
键入文件结束符可以退出交互模式(Ctrl-D in Unix, Ctrl-Z in DOS/Windows),
或者调用 OS 库的 os.exit() 函数也可以退出。 

来看两个例子 
如大多数语言一样,首先要写的就是著名的 hello, world 
在 lua 环境命令行输入 
print("hello, world") 
很眼熟吧,居然和 Python3.x 语法一样。 
如果是把 print("hello, world") 保存在 lua 文件中,比如说使用 lua filename.lua 

再来看另外一个有点小复杂的例子

例子中首先定义一个是计算阶乘的函数,然后根据用户输入的数字输出结果。
感叹一下,神似 python 那! 
-- defines a factorial function 
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) 

Chunk 是什么玩意? 
Chunk 是一系列语句,Lua 执行的每一块语句
(可以是一系列语句的组合,还可以是函数,Chunk 可以很大,在 Lua 中几个 MByte 的 Chunk 是很常见的),
比如一个文件或者交互模式下的每一行都是一个 Chunk。 
在交互模式下,Lua 通常把每一个行当作一个 Chunk,但如果 Lua 一行不是一个完整的 Chunk 时,
他会等待继续输入直到得到一个完整的 Chunk. 在 Lua 等待续行时,显示不同的提示符(一般是 >>)。 
可以通过指定参数让 Lua 执行一系列 Chunk。
例如:假定一个文件 a 内有单个语句 x = 1 另一个文件 b 有语句 print(x) 
lua -la -lb 
命令首先在一个 Chunk 内先运行 a 然后运行 b。 
运行完 Chunk 后进入交互模式则需要加上 -i 选项,如 lua -i -la -lb 
除此之外,还可以使用 dofile 函数,在交互模式下: 
dofile("test.lua") 
然后就可以引用其中的函数等等。 
-i和dofile很方便调试、测试代码。 

语法约定
标示符:字母 (letter) 或者下划线开头的字母、下划线、数字序列.
最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
Lua 中,letter 的含义是依赖于本地环境的。 
保留字 :以下字符为 Lua 的保留字,不能当作标识符。 
and break do else elseif 
end false for function if 
in local nil not or 
repeat return then true until 
while
注意:Lua 是大小写敏感的. 

注释:单行注释:-- 
-- no action (comment) 
多行注释:--[[ --]] 
--[[ 
print(10) 
--]] 

全局变量 
定义:
全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,
访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil. 
删除全局变量,赋值为nil就可以了,如 m = nil 

命令行方式
lua [options] [script [args]] 
-e:直接将命令传入 Lua 
lua -e "print(math.sin(12))" --> -0.53657291800043 
-l:加载一个文件. 
-i:进入交互模式. 
_PROMPT 内置变量作为交互模式的提示符 
lua -i -e "_PROMPT=' lua> '" 
Lua 的运行过程,在运行参数之前,Lua 会查找环境变量 LUA_INIT 的值,
如果变量存在并且值为 @filename,Lua 将加载指定文件。
如果变量存在但不是以 @ 开头,Lua 假定 filename 为 Lua 代码文件并且运行他。
利用这个特性,我们可以通过配置,灵活的设置交互模式的环境。
可以加载包,修改提示符和路径,定义自己的函数,修改或者重命名函数等。 
全局变量 arg 存放 Lua 的命令行参数。 
lua script a b c 
在运行以前,Lua 使用所有参数构造 arg 表。脚本名索引为 0,脚本的参数从 1 开始增加。脚本前面的参数从 -1 开始减少。 
lua -e "sin=math.sin" script a b 
arg 表如下: 
arg[-3] = "lua" 
arg[-2] = "-e" 
arg[-1] = "sin=math.sin" 
arg[0] = "script" 
arg[1] = "a" 
arg[2] = "b" 

关于分号 
Lua 在每个语句结尾的分号(;)是可选的,同一行中有多个语句的话最好使用分号(;)隔开
(这里说的是最好而不是必须,因为即使没有分号 lua 也会正确执行而不会报错,但是为了更好的阅读建议加上分号)。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值