3
這兩種聲明在性能方面是否有區別?Lua中的方法聲明
local object = newObject()
function object:method(params)
end
local object:method = function(params)
end
這兩種聲明在性能方面是否有區別?Lua中的方法聲明
local object = newObject()
function object:method(params)
end
local object:method = function(params)
end
是的,有區別。第二個不編譯。所以它沒有任何性能;)
「方法聲明」只是Lua中的語法糖。這些是相同的:
function object.func(self, param)
end
function object:func(param)
end
但糖只有的作品,如果你命名的功能函數聲明的一部分。
在Lua中訪問「方法」的':'語法只能用於訪問存儲在表中的函數,該表由字符串鍵來命名。您不能使用此語法來設置表的值。
或者,換一種說法,有沒有其他辦法可以做到這一點:
function object:func(param)
end
沒有明確指定一個「自我」參數作爲第一個參數。
謝謝!我在所謂可信的資源上閱讀這篇文章,應該自己嘗試過。那裏好幽默:) – Vitaly