Lua Trivia Answers

lua-users home
wiki

回答 A

根據 a.b 為何而定!

a = {}; b = {}; c = {}
print(a,b,c) --> a,b,c

a.b = function(...) print(...) end
a:b(c) --> a,c

mt = {}
mt.__call = function(...) print(...) end
a.b = setmetatable(b, mt)
a:b(c)   --> b,a,c
a.b(a,c) --> b,a,c (identical)

再者,ac,以及全域環境表會呼叫函式的元方法。

回答 B

會列印
2       3       2
而不是
1       4       6
如果您是 C 程式設計師,可能會這樣預期!這只不過是第三行的 -- 符號並非解譯為變數遞減,而是註解的開頭……Lua 中也不存在 ++ 運算子,但在此並未產生錯誤,因為它在註解內!

請注意問題中無語法突顯的事實上是故意的。

回到 LuaTrivia


RecentChanges · 偏好設定
編輯 · 歷程
上次編輯時間為 2019 年 4 月 13 日上午 9:54 UTC (diff)