【Lua程序设计】Lua语言入门

Lua程序设计————Lua语言入门

1.程序段

Lua语言执行的每一段代码称为一个程序段,即一组命令或表达式组成的序列。其中一段代码可以是在一个*.lua文件中的代码,也可以是交互模式下的一行代码。

2.词法规范

Lua语言中的标识符是由任意字母,数字和下划线组成的字符串(不能以数字开头)。Lua语言的早期版本中,“字母”的概念与操作系统的区域设置有关,可能导致同一程序在其他区域无法正常运行,所以这里的字母只能为[A-Z][a-z]
下划线加大写字母通常被Lua用于特殊的用途应避免将其用作其他用途。

Lua的保留字
and,break,do,else,elseif,end,false,goto,for,function,
if,in,local,nil,not,or,repeat,return,then,true,until,while

Lua语言是大小写敏感的。
Lua使用两个连续的连字符(–)表示单行注释的开始。
Lua使用两个两个连续的连字符加两队连续的左方括号表示多行注释的开始,用两个连续的右方括号表示多行注释的结束。

--这是单行注释

--[[
这是
多行
注释
]]

--[[
--更好的多行注释方式,这样当需要启用注释中的代码时只需要在多行注释的开头加一个连字符即可。
--这样(加一个连字符后)第一行为---[[被解释为"--"和"-[[","-[["被注释掉了。
--后面的"--]]"没有与之匹配的多行注释起始符实际也为单行注释。
--]]

--实际上Lua的多行注释可以在两个方括号之间添加一定数量的等于号,其中起始符和结束符之间的等于号数目要相等。
--[=[ 这样可以 ]=]
--[==[ 这样不行,会导致后面的全部被注释,因为没有匹配到注释结束符 ]=]
print("这里其实被注释了")

Lua语言中连续语句之间的分隔符并不是必须的,也就是说不用像其他语言一样每写一句加个分号,可加可不加,如果习惯了其他语言的加分号,还是建议加一下的。(之前有段时间一直敲Lua代码重新去敲C++老是忘记加分号)

3.全局变量

在Lua中全局变量无需声明也可以直接使用,未初始化的变量在Lua中的值为nil。如果将nil值赋给全局变量,Lua会回收该全局变量。

4.类型和值

Lua语言时一种动态类型语言,在这种语言中没有类型定义,每个都带有其自身的类型信息。

Lua中有8种基本类型:nil,boolean,number,string,userdata,function,thread,table。
可以使用全局函数type(xxxx)获取对应变量的类型名称。该函数返回一个string。
userdata类型允许把任意的C语言数据保存在Lua语言变量中。

5.nil

nil类型只有一个值为nil,表示无效值。

6.boolean

boolean类型只有两种值true和false。
在Lua语言中条件测试将除nil和false之外的所有其他值视为真(0和""也为真)。

7.逻辑运算符

Lua语言支持常见的逻辑运算符有and、or、not。

逻辑运算符and:如果and的第一个操作数为假则返回第一个操作数,否则返回第二个操作数。
逻辑运算符or:如果or的第一个操作数为真则返回第一个操作数,否则返回第二个操作数。

print(4 and 5)--5
print(false and n)--false
print(4 or 5)--4
print(false or n)--n 

and和or都遵循短路求值原则,类似于c++中的&&和||。and如果第一个为假那么第二个就不会执行了。or第一个为真那么第二个也不会执行了。
拓展运用:
or可以使用型如 x = x or n的写法。等同于if not x then x=n end,如果x为空则为x去默认值n。
可以用 (a and b or c)的写法。如果b为真的话那么该表达式等同于C语言中的三目元算符a?b:c。若a为真a and b 返回b,b or c由于b为真返回b
如果a为假,a and b返回a,a or c由于a为假所以返回c。
not 运算符返回boolean值,其右值为假则返回真,为真则返回假。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值