2016-09-08 62 views
2

鑑於這種代碼:的Lua加載鏈功能失效

local fruit = {} 
fruit.name = "Bramley" 
loadstring("fruit.pips = '2'") 
fruit.skinc = 'Red' 
print(fruit) 

爲什麼不添加到表中的點數: 表

'fruit'{ 
    'name'='Bramley', 
    'skinc'='Red' 
} 

回答

3

loadstring()(或load()在Lua 5.2或更高)返回一個函數,你必須運行該函數來執行代碼。就像這樣:

fruit = {} 
fruit.name = "Bramley" 
loadstring("fruit.pips = '2'")() 

注意fruit必須是全球性的,或將要產生一個錯誤,因爲loadstring返回功能的環境是全球環境。

+0

非常感謝!我嘗試過在我的方式中添加()錯誤的是,水果是一個局部變量。非常感謝你的簡潔,法醫的答案 - 知道我的錯誤沒有我顯示它! – MrB