现在的位置: 首页 > 综合 > 正文

cocos2d-x 快速熟悉Lua基本细节问题

2018年02月10日 ⁄ 综合 ⁄ 共 1387字 ⁄ 字号 评论关闭

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!

原文地址: http://www.cocos2dev.com/?p=416

一、程序块的写法:

a = 1 
b = a*2 
a = 1; 
b = a*2; 
a= 1; b = a*2 
a = 1 b = a*2

这四个程序块都是等价的。

二、Lua 变量区分大小,~= 是 不等于

三、注释符号

--[[ 
这里是多行注释符号 
这里是多行注释符号 
]] 
print("Sunny")  -- 两个连接符就是单行注释符号

注意:多行注释符号一般这样写:

--[[ 
print("Sunny")  --已经被注释了 
--]]

优点:假如你想把注释去掉,直接在开头注释符号前面加一个连接符就可以了。(多行注释符号被改成了单行)

---[[
print("Sunny")  --没有注释 
--]]

四、全局变量不用声明,赋值就可以了,不用的时候赋值nil,未赋值的全局变量为nil

五、boolean,只有false和nil是假,其他值都是真(包括0和空字符串)

六、number ,表示双精度浮点数,Lua没有整数类型

七、string,可以赋值为任意二进制数据

1、注意Lua的字符串是不可变的值,不能像c++那样修改字符串里的字符,需要修改的话请创建一个新的字符创。

a = "hello world" --也可以是单引号,注意统一风格就可以了 
b = string.gsub(a,"world","sunny") 
print(a) --输出 hello world 
print(b) --输出 hello sunny

2、在字符串上面进行算术操作,lua会将字符串转化成数字

print("1"+ 1) --输出 2 
print("a"+ 1) --错误:a string value

3、tonumber(),字符串转数字

print(tonumber("123")) --输出数字 123 
print(tonumber("a123")) --输出 nil

3、tostring(),数字转字符串(也可以使用连接符,123 .. “” )

print(type(tostring(123))) --输出 string 
print(type(123 .. "")) --输出 string

4、#,长度操作符,获取字符串长度

a = "sunny" 
print(#a) --输出 5

八、table,一种关联数组,也就是一种有索引方式的数组,索引值可以是整数、字符串或其他类型。(nil不可以作为table索引值)

a = {} --创建table,将table的引用存到a 
a["x"] = 1  --增加一个新条目 "x":1 
b = "y" 
a[b] = 2    --增加一个新条目 "y":2 
c = a         --c和a引用了同一个table 
print(a["x"]) --输出 1 
print(a["y"]) --输出 2
print(c["x"]) --输出 1 
print(c["y"]) --输出 2 
print(c.y)    --输出 2

注意:c.y 等价与 c["y"],但是不同于c[y]

常用技巧:

a = {} 
fori = 0,9 do 
a[i] = i 
end 

fori = 1,#a do--#a 返回a的最后索引值 
print(a[i]) --利用#输出所有行 
end
 
print(a[#a]) --输出最后一个值 
a[#a] = nil --删除最后一个值 
a[#a+1] = 10 --添加一个值到最后

注意:不推荐使用索引0为起始索引,大多数内建函数都假设数组索引开始于1,所以为0的索引数组可能会出现错误。

抱歉!评论已关闭.