【Lua程序设计总结】第二章:类型与值

最近在重拾Lua,在看《Lua程序设计》这本书,把其中的一些知识点记录一下,方便以后翻看。我会以书中的每一章节写一篇文章进行总结,其中会有一些书中内容的摘抄,因为第一章内容较少就直接从第二章开始了。好了话不多说下面开始。

 

词法规范

  1. Lua中的标示符可以是由任意字母、数字和下划线构成的字符串,但不能以数字开始。
  2. 应该避免使用一个下划线开头并跟着一个或多个大写字母(例如_VERSION)的标示符,Lua将这类标示符保留用作特殊用途。
  3. Lua是有大小写只分的。“And”和“AND”是两个不同的标示符
  4. Lua可以使用“--”两个连字符进行“行注释”,改注释一直延伸到一行的结尾。
  5. Lua也提供了“块注释”,以 “--[[” 开始,到 “]]” 结束。在注释一段代码时,一个好用的技巧是将代码块放入“--[[” 和 “--]]”中间,示例如下:
--[[
print(10)    --这里不起作用(因为这是注释)
--]]

--当重新启用这段代码时,只需在第一行行首添加一个连字符即可:

---[[
print(10)    -->10
--]]

 

第二章 类型与值

在Lua中有8种基础类型:nil(空),boolean(布尔),number(数字),string(字符串),function(函数),table(表),userdata(自定义类型),thread(线程)。

“#” 是长度操作符,可以获取string、table的长度,使用细节看后面。

nil(空)

在Lua中想要销毁一个对象可以将其赋值为nil。

boolean(布尔)

Lua中将值false和nil视为“假”,除此之外其他值都视为“真”。在Lua中0和空字符串也都视为“真”,这和其他语言所有区别。

string(字符串)

  1. Lua的字符串是不可变的值(immutable values)。当修改字符串时并非修改原有字符串,而是新创建了一个字符串赋给原有变量,这与C#的string一样。
  2. 在Lua中可以使用 tonumber 和 tostring 函数进行数字和字符串之间的显示转换。
  3. 在Lua中使用 “..” 字符串连接操作符,可以进行字符的拼接。“..”也可以用于number,但会将number隐式的转换成string。
  4. 可以通过 “#” 来获取字符串长度。

 

table(表)

  1. table是Lua中有且仅有的一种数据结构,table可以表示其他语言中常用的数组、队列、字典等数据结构。table的创建直接通过 a = {} 的形式就可以了。
  2. table可以通过 a["key"] = value 的方式添加数据,也可以使用语法糖衣 a.key = value 进行添加,两种方式是等价的。
  3. 和全局变量一样,可以通过赋值nil来删除table中的元素。
  4. 和很多其他语言起始索引值为0不同,Lua中的table起始索引值为1,这一点新手需要多注意。
  5. 对于连续空间的数组table来说,可以通过“#”字符来获取table的长度。如 a = {1,2,3,4,5}这个table的长度则为5。对于不连续的数组table,则可以通过table.maxn方法来获取长度,如a[1000] = 1000这个table的长度则为1000。

 

function(函数)

  1. 在lua中函数被作为“第一类值”看待,即函数可以被存储在变量中,也可以通过参数传递给其他函数,也可以作为函数的返回值。这与C#中的委托,C++中的函数指针非常的类似。

 

扫描二维码关注公众号,回复: 14628782 查看本文章

第二章的内容就先总结到这里,后面会根据书中的内容继续总结。

 

 

 

猜你喜欢

转载自blog.csdn.net/huoyixian/article/details/107374167
今日推荐