标签:false 赋值 双引号 key and 协同 double goto pair
--[[
多行注释
--]]
Tips:通过将 --[[ 修改成 ---[[ 快速将多行注释取消。
标识符命名规则:
Lua中常用关键字:and break do else elseif end false for function goto if in local nil not or repeat return then true until while
在默认情况下,变量总是认为是全局的。
Lua变量不需要声明,没有初始化的全局变量为nil。
通过给变量赋值为nil,删除变量。
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。
数据类型 | 描述 |
---|---|
nil | 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。 |
boolean | 包含两个值:false和true。 |
number | 表示双精度类型的实浮点数 |
string | 字符串由一对双引号或单引号来表示 |
function | 由 C 或 Lua 编写的函数 |
userdata | 表示任意存储在变量中的C数据结构 |
thread | 表示执行的独立线路,用于执行协同程序 |
table | Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。 |
nil 可以表示空值,还有一个"删除"作用
nil 作比较时应该加上双引号 ",如:
type(X)=="nil"
boolean 类型只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是 false,其他的都为 true,数字 0 也是 true。
Lua 默认只有一种 number 类型 -- double(双精度)类型(默认类型可以修改 luaconf.h 里的定义)
1.字符串由一对双引号或单引号来表示。也可以用2个方括号 "[[]]" 来表示"多行"字符串。
如:
html = [[ <html> <head></head> <body> <a href="http://www.runoob.com/">菜鸟教程</a> </body> </html> ]] print(html)
2.字符串连接使用".."
3.在对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字。
如:
print("2" + 6) print("2" + "6")
都会输出8.0
print("error" + 1)
报错
4.使用 # 来计算字符串的长度,放在字符串前面。
如:
print(#"Hahaha")
输出6
Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。可以理解为C#中的字典。table 的创建是通过"构造表达式"来完成,最简单构造表达式是{}。
1、构造一个空表
如:
tbl1 = {}
2、初始化一个表
如:
tab1 = {key1 = 100,key2= "val2"}
3、print(表)输出表的地址
4、访问表中元素
第一种:.
如:
print(tab1.key1)
第二种:索引[]
如:
print(tab1["key1"])
5、使用默认索引构建表,初始索引为1。注意:初始索引为1,与其他语言不一样,不为0!!!此时不能用.来访问元素。
tbl = {"apple", "pear", "orange", "grape"} print(tbl[2])
输出为pear
6、遍历table
for key, val in pairs(tbl) do print(key..":"..val) end
7、table不会固定长度大小
8、添加、删除table元素
删除如:
tab1["key1"] = nil tab1.key1 = nil
添加如:
tab1["key5"] = "hahaha" tab1.key5 = "hahaha"
注意:删除使用默认索引构建的表中的元素,不会改变其他元素的索引值。
1、在 Lua 中,函数是被看作是"第一类值(First-Class Value)",函数可以像变量一样赋值。
如:
function fact(n) if n==1 then return n; else return n*fact(n-1); end end print(fact(3)) fact2 = fact print(fact2(3))
2、函数可以像C#中的委托一样使用。
如:
function testFun(tab,fun) for k,v in pairs(tab) do fun(k,v) end end tab = {key1 = "Val1",key2 = "Val2"} function f1(k,v) print(k..":"..v) end testFun(tab,f1)
3、也可以像C#匿名方法和lambda表达式那样。
testFun(tab,function(k,v) print(k.."-"..v) end )
本文参考:https://www.runoob.com/lua/lua-data-types.html
标签:false 赋值 双引号 key and 协同 double goto pair
原文地址:https://www.cnblogs.com/craft0625/p/13629357.html