Cocos2d-Lua之型別及型別轉換
阿新 • • 發佈:2019-02-19
一、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型別都不支援。