Re: [問題] Lua在函數中產生資料與讀取問題
※ 引述《oohay (五黑)》之銘言:
: 其實我在做這件事情: 把一個外部變數x丟給某個函式,讓函式幫x產生新內容.
: 不過以下方法全都產生foo, 所以我說看到鬼!
: 在寫程式過程中,也做過很多假設,假設函式外的物件行為如何,假設函式內的物件
: 又是產生新實體或不產生新實體.
我試著釐清一下你的盲點
1.Lua的Table Literal會產生新的實體 (例如 a = {1,2} )
refer to http://www.lua.org/pil/2.5.html
Java的Array也是
Ruby的Array, Python的List亦然
2.把Table當作Array使用 預設的index是從1開始
但是也可以從任何其他數值開始
refer to http://www.lua.org/pil/11.1.html
: 至於說明書,當然不是沒看囉! 但是看過了,寫出來仍然與預期不符合!
: function a(y)
: table.insert(y, {1, 2})
: end
: function b(z)
: z = {1, 2}
: end
: x = {}
: if x[0] ~= nil then
: print(x[0][1] .. x[0][2])
: else
: print("foo")
: end
當然是foo
: a(x)
: if x[0] ~= nil then
: print(x[0][1] .. x[0][2])
: else
: print("foo")
: end
上述第二項 預設index從1開始
: x = {}
: b(x)
: if x[0] ~= nil then
: print(x[0][1] .. x[0][2])
: else
: print("foo")
: end
上述第一項
b(x)會產生新的實體
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.35.97
討論串 (同標題文章)