您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-Lua之类型及类型转换

2016-06-15 14:36 483 查看
一、Lua类型

Lua中的类型只有四种:

1. number

2. string

3. boolean

4. function

根据其他语言后三种类型就不解释了,第一种类型number,既包括整型,也包括浮点型,统一都是number型。

lua用type函数打印类型:

local a = 5
local b = 5.5;
local c = "hello";
local d = true;

print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(fun));

function fun()
local a = "hello, world"
end


输出结果:



二、string与number间的转换

lua中的string和number类型间有个强大的功能,如果string类型的值看上去是个number,那么系统就会自动转换成number类型。

local a = "5"
local b = "5.5";

print(type(a))
print(type(b))
print(a + b)
print(type(a + b))


输出结果:



可以看到两个string类型的变量a和b一做加法,系统将他们自动变成了number型。这样看似number型的string和number相加同样会自动转换。

那么如果并不是看上去那样是个number的string类型相加呢,这里也给个例子:

local a = "5"
local b = "w.55";

print(type(a))
print(type(b))
print(a + b)
print(type(a + b))


输出结果:



可以看到这样就会报错了,系统自动识别number真的是很强大,同样这个地方要非常的小心,可能本意并不想转number型,但是系统自动转了。

三、string和number类型的连接功能

Lua中的string类型是通过“..”讲两个string进行连接的:

local a = "5"
local b = ".55";

print(type(a))
print(type(b))
print(a .. b)
print(type(a .. b))


输出结果:



可以看到两个string连成了5.55,类型仍然是string,这里并不会自动转换。同样可以多个number或者string混合连接,这种连接功能只适用于string和number类型间,function和boolean类型都不支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua