數(shù)據(jù)類型有哪幾種 lua腳本和c 交互時(shí)數(shù)據(jù)類型不能識(shí)別怎么辦?
lua腳本和c 交互時(shí)數(shù)據(jù)類型不能識(shí)別怎么辦?實(shí)際上,Adobe Photoshop是一個(gè)用Lua編寫的腳本Lua數(shù)據(jù)轉(zhuǎn)換問(wèn)題:Lua中的所有數(shù)據(jù)類型都將在內(nèi)部轉(zhuǎn)換為雙類型。如果需要顯示雙精度類型,
lua腳本和c 交互時(shí)數(shù)據(jù)類型不能識(shí)別怎么辦?
實(shí)際上,Adobe Photoshop是一個(gè)用Lua編寫的腳本
Lua數(shù)據(jù)轉(zhuǎn)換問(wèn)題:
Lua中的所有數(shù)據(jù)類型都將在內(nèi)部轉(zhuǎn)換為雙類型。如果需要顯示雙精度類型,可以執(zhí)行以下操作:
Lua:
local num=3.14
printf(touring num)。
Lua通過(guò)call或pcall函數(shù)執(zhí)行redis命令時(shí),命令的返回值將轉(zhuǎn)換成Lua數(shù)據(jù)結(jié)構(gòu)。同樣,當(dāng)Lua腳本在redis的內(nèi)置解釋器中運(yùn)行時(shí),Lua腳本的返回值會(huì)被轉(zhuǎn)換成redis協(xié)議,然后Eval將值返回給客戶端。
數(shù)據(jù)類型之間的轉(zhuǎn)換遵循這樣的設(shè)計(jì)原則:如果將redis值轉(zhuǎn)換為L(zhǎng)ua值,然后將轉(zhuǎn)換后的Lua值轉(zhuǎn)換回redis值,則轉(zhuǎn)換得到的redis值應(yīng)與原始redis值相同。
換句話說(shuō),Lua類型和redis類型之間存在一對(duì)一的轉(zhuǎn)換關(guān)系。
Lua中的整數(shù)和浮點(diǎn)數(shù)沒(méi)有區(qū)別。因此,我們總是將Lua的數(shù)字轉(zhuǎn)換成一個(gè)整數(shù),這個(gè)整數(shù)將舍入小數(shù)部分。如果要從Lua返回一個(gè)浮點(diǎn)數(shù),應(yīng)該將其視為字符串(例如,請(qǐng)參閱zscore命令)。
沒(méi)有簡(jiǎn)單的方法可以在Lua數(shù)組中使用nil,這是Lua表語(yǔ)義的結(jié)果,因此當(dāng)redis將Lua數(shù)組轉(zhuǎn)換為redis協(xié)議時(shí),如果使用nil,則轉(zhuǎn)換將停止。
Lua是一種動(dòng)態(tài)類型語(yǔ)言,因此變量沒(méi)有類類型,只有值有類型。值可以存儲(chǔ)在變量中,作為參數(shù)傳遞,并作為結(jié)果返回。
在Lua中,雖然沒(méi)有變量的數(shù)據(jù)類型,但有類型的值。