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