2014-04-29 27 views
3

通過使用Python,我們可以將字符串重新定義爲字典。重新定義Lua中的變量類型

例子:

var = "testing" 
var = {'body': var} 
print var['body'] 
'testing' 

和Lua我想要做的一樣。我想將字符串對象轉換爲表格。

我嘗試:

> var = "testing" 
> var = {'body', var} 
> print(var) 
table: 0x12b2930 
> for i,j in pairs(var) do 
>> print(i) 
>> print(j) 
>> end 
1 
body 
2 
testing 
> 

有了上面的例子中,我可以

> print(var[2]) 
testing 
> 

上面的代碼是不履行我的要求取檢驗字符串。我想用"body"鍵存儲值'testing'
我要像下面獲取:

print(var['body']) 
'testing' 

請幫我在這

+0

即例如蟒片斷不正確。如果你按順序運行這些行,你就不會從測試結果中得到測試結果。你得到'{'body':'testing'}'這正是你從lua得到的,如果你有一些漂亮的表格(內置lua'print'函數沒有)。 –

+0

@EtanReisner對不起,我現在編輯 –

回答

6
var = "testing" 
var = {body = var} 
print(var.body) 
print(var["body"]) 

逗號在表格結構分開表項。因此,通過指定{"body", "testing"},可以創建兩個分別等於「body」和「testing」的鍵1,2的條目,因爲這是初始化順序數組的方式。

如果要爲每個值分配任意鍵,則必須使用=,如{key1 = "body", key2 = "testing"}中所述。現在您可以通過兩種方式訪問​​這些元素。一種是像對象,使用點:

tab1.key1

,一個是陣列/地圖等,使用方括號:

tab1["key1"]

在第二個示例中,您必須注意報價。如果您使用雙引號,則直接訪問密鑰。如果不是(tab1[key1]),則使用存儲在名爲key1的變量中的值作爲密鑰說明符。

+0

非常感謝你的解釋:) –

3

最接近Python代碼的Lua代碼是

var = "testing" 
var = {['body'] = var} 
print(var['body'])