您的位置:首页 > 教程 > lua > Lua中的变量类型与语句学习总结

Lua中的变量类型与语句学习总结

2019-10-28 18:48:25 来源:易采站长站 作者:王冬梅

Lua中的变量类型与语句学习总结,字符串,变量,语句,类型,数组

Lua中的变量类型与语句学习总结

易采站长站,站长之家为您整理了Lua中的变量类型与语句学习总结的相关内容。

1. Lua类型
1.1 基本类型

Lua是一种动态类型语言,没有类型定义的语法。Lua一共有8种基础类型:nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)、table(表)。

函数type可根据一个值返回其类型名称(字符串),如print(type(print)),输出“function”;print(type(type(X))) ,输出“string”。(这里不管X有没有定义,type(X)总是返回字符串)

1.2 各类型要注意的地方

(1)关于boolean:

在Lua中,false和nil视为“false”,其它值均视为“true”(包括数字0和空字符串)。
(2)关于number:

该类型用于表示实数(双精度double),整数也用此类型表示。
(3)关于string:

字符串不能像C语言一样直接修改某个字符,必要时应通过string库创建一个新的字符串。字符串可以用一对匹配的单引号或双引号来界定。可以实用类C语言的转义序列。

此外,可以用双方括号[[内容]]来界定,其中的换行字符均被忽略,适用于包含一整段的字符串。若在左边的两个方括号间加入任意数量的等号,如[===[,则字符串右边应该匹配带相同数量等号的方括号,如]===],这样做就可以在不加转义的情况下直接嵌入任意内容的字符串。同理注释也可以这样使用,如--[==[匹配--]==]。

Lua提供运行时的数字与字符串自动转换。如print("10"+1) –> 11,print(10 ..20) –> 1020(“..”是字符串连接符,上例将数字转换成字符串并连接,数字和..之间应该留一个空格)。

建议尽量少用自动转换,如有需要可用强制转换。函数tonumber(x)尝试将x转换成数字,若失败则返回nil,函数tostring(x)将x转换成字符串。在字符串前放置“#”可获得字符串的长度,如print(#"length") –> 6。
(4)关于table:

Table是一种具有特殊索引方式的数组,可以实用除nil外的其他类型的值作为索引,其增长与删减均通过自动内存管理来完成。Table是一个“对象”,程序仅持有一个对它们的引用,例如可以通过a = {}创建一个table并将它的引用存储到a,若再b = a,则b与a引用同一个table。若table的某个元素没有初始化,其值即为nil,可以通过赋nil来删除table的某个元素。

有一种等价写法:p["age"]等价于p.age。注意,p.age和p[age]并不等价。

“#”可用于返回一个数组的最后一个索引值(或其大小)。例如print(a[#a])打印列表a的最后一个值,a[#a+1] = io.read()读入一个值并插入到列表a末尾。注意,Lua将nil作为界定数组结尾的标志,当一个数组中间含有nil时,#会认为第一个nil就是结尾,因此应避免对含“空隙”的数组使用#。

在Lua中,一般默认table第一个索引为1而不是C语言中的0。以上就是关于对Lua中的变量类型与语句学习总结的详细介绍。欢迎大家对Lua中的变量类型与语句学习总结内容提出宝贵意见

微信扫一扫

易采站长站微信账号