lua中的基本類型

Lua是動態類型語言,變量不要類型定義。Lua中有8個基本類型分別爲:nil、boolean、number、string、userdata、function、thread和table

print(type("Hello world")) --> string
print(type(10.4*3)) --> number
print(type(print)) --> function
print(type(type)) --> function
print(type(true)) --> boolean
print(type(nil)) --> nil
print(type(type(X))) --> string   --任何值的類型的類型都是string
--lua中的type()函數是判斷變量的類型

nil:Lua中特殊的類型,他只有一個值:nil;一個全局變量沒有被賦值以前默認值爲nil;給全局變量負nil可以刪除該變量

loca a = nil
local b    --兩種都是一樣的,b並沒有賦值,默認爲nil,如果確定變量的值,最好定義時就初始化

booleans:bool值
兩個取值false和true。但要注意Lua中所有的值都可以作爲條件。在控制結構的條件中除了false和nil爲假,其他值都爲真。所以Lua認爲0和空串都是真

local status = false
local status1 = nil
local str = ""
local b = true
if status then
end
if status1 then
end
--前兩個的條件都不成立
if str then
end
if b then
end
--後兩個的條件成立

number:
表示實數,Lua中沒有整數,Lua的numbers可以處理任何長整數不用擔心誤差

local num1 = 4
local num2 = 0.4
local num3 = 5e + 20

string:
指字符的序列。lua是8位字節,所以字符串可以包含任何數值字符,包括嵌入的0。這意味着你可以存儲任意的二進制數據在一個字符串裏。Lua中字符串是不可以修改的,你可以創建一個新的變量存放你要的字符串
string和其他對象一樣,Lua自動進行內存分配和釋放

local a = "hello world"
local b = 'hello kitty'   --可以使用單引號或者是雙引號表示字符串

Lua會自動在string和numbers之間自動進行類型轉換,當一個字符串使用算術操作符時,string就會被轉成數字。

print("10" + 1) --> 11
print("10 + 1") --> 10 + 1
print("-5.3e - 10" * "2") --> -1.06e-09
print("hello" + 1) -- ERROR (cannot convert "hello")
tostring(10)  --將數字轉化成字符串
tonumber("10")  --將字符串轉化爲數字

functions:
函數是第一類值(和其他變量相同),意味着函數可以存儲在變量中,可以作爲函數的參數,也可以作爲函數的返回值
Lua可以調用lua或者C實現的函數,Lua所有標準庫都是用C實現的。標準庫包括string庫、table庫、I/O庫、OS庫、算術庫、debug庫
userdata和threads:
userdata可以將C數據存放在Lua變量中,userdata在Lua中除了賦值和相等比較外沒有預定義的操作。userdata用來描述應用程序或者使用C實現的庫創建的新類型
threads:線程

發佈了46 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章