看板 Programming 關於我們 聯絡資訊
為什麼裡面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)
Ross0916:覺得爛+1 所以不用+1 140.112.5.10 02/09 12:53
yzugsr:我是覺得Ruby, Python, Lua各有長處 123.193.35.97 02/09 13:11
yzugsr:Lua好在他的輕量 (反過來說就是功能和 123.193.35.97 02/09 13:12
yzugsr: syntax sugar少) 123.193.35.97 02/09 13:12
yzugsr:我自己是喜歡寫Ruby勝過Lua的 123.193.35.97 02/09 13:13
yzugsr:但我想也不用一昧否定Lua 123.193.35.97 02/09 13:14
oohay:線上改打錯的,發瘋時{}()不分 61.231.71.148 02/09 14:42
oohay:不過執行確認的版本倒沒錯 61.231.71.148 02/09 14:43
oohay:睡醒之前腦中想到一個解決辦法,頓時覺得 61.231.71.148 02/09 14:43
oohay:X! Lua超機車 61.231.71.148 02/09 14:44
oohay:所謂解決辦法就是同一份程式在那邊複貼一份 61.231.71.148 02/09 14:45