Re: [問題] Lua在函數中產生資料與讀取問題
為什麼裡面syntax錯那麼多....
※ 引述《oohay (五黑)》之銘言:
: function a()
: a = ()
local a = {}
lua的table明明是 {} 不是 ()
在lua, function也是first-class object
你不加local a這個table會把原本的function蓋掉
: if a[0] == nil then
: print("foo")
: a[0] = ()
{}
: b(a[0])
: if a[0] == nil then
: print("foo")
: else
: print("ok")
: end
: c(a[0])
: else
: print("ok")
: end
: end
: function b(a)
: a = (1, 2)
{ } <= 這樣也不對
你在function裡面把a的參考指向另一個{1, 2}的table
但原本的table還是沒有變..
應該要
table.insert(a, 1)
table.insert(a, 2)
: end
: function c(a)
: if a == nil then
: print("nil")
: else
: print("foo ")
: print(a[0] .. a[1])
: end
: end
: a()
: 以上, 從a函式丟一個變數a, 在b函式產生一對資料指派給此變數, 在c函式打算
: 做該變數的資料處理.
: 但是印出的答案盡是foo foo foo, 果如其所說的what the fuck!
: 印出訊息也是 "attempt to index local <variable-name>"
: 我知道那是某個函數的local變數,
: 可是一旦要取用, 我只想要它的值, 而不是它這個物件的參考!!
我完全沒看到這個錯誤訊息
你給的code有syntax error不能跑 我改一改就沒錯誤了
: 你這個白痴Lua一直給我參考到那個Local幹嘛? 不是已經結束函式了嗎?
: 不是已經跳出scope外了嗎?
我寫一切都很正常啊 @@
官方的programming guide有沒有看完一遍
為Lua平反一下,尿不準別怪馬桶歪
: 你不講我還真不知道,原來我很想取用一個local變數,
: 直接告訴我在此區域看不見那個東西就好了,囉唆那麼多幹嘛?
: 寫個Lua程式,架構大一點,隨機性多一點, 最後就因為這種attempt to index LOCAL
: 而 *完全* 寫不下去.
: 超爛的程式語言!
有點受不了這說法....覺得爛就別用吧 =.=
他的定位本來就是fast, light-weight, embeddable scripting language
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.35.97
※ 編輯: yzugsr 來自: 123.193.35.97 (02/09 12:46)
推
02/09 12:53, , 1F
02/09 12:53, 1F
→
02/09 13:11, , 2F
02/09 13:11, 2F
→
02/09 13:12, , 3F
02/09 13:12, 3F
→
02/09 13:12, , 4F
02/09 13:12, 4F
→
02/09 13:13, , 5F
02/09 13:13, 5F
→
02/09 13:14, , 6F
02/09 13:14, 6F
推
02/09 14:42, , 7F
02/09 14:42, 7F
→
02/09 14:43, , 8F
02/09 14:43, 8F
→
02/09 14:43, , 9F
02/09 14:43, 9F
→
02/09 14:44, , 10F
02/09 14:44, 10F
→
02/09 14:45, , 11F
02/09 14:45, 11F
討論串 (同標題文章)