2011-04-23 22 views
1

我想重載Lua的布爾測試操作符(例如if foo then ...)。看看5.1源代碼,它看起來像lua_toboolean()沒有相應的metamethod,並且似乎沒有任何其他明顯的方法。有沒有辦法?如果沒有,是否有人知道這是設計還是簡單的疏忽?有沒有辦法重載Lua的布爾測試?

+0

你真的想做什麼?爲什麼你需要超載呢? – 2011-04-23 11:32:43

+1

我有一個代理層向Lua公開某些引擎對象。當Lua還在參考時,這些物品可能會被銷燬。在這種情況下,Lua端的對象變爲無效。它對於代理層實現'foo:isvalid()'方法或類似方法沒有任何問題,但是如果簡單地寫'if foo then ...'會更好。 – 2011-04-23 11:38:33

回答

相關問題