gpt4 book ai didi

function - Lua中的方法声明

转载 作者:行者123 更新时间:2023-12-02 09:12:46 24 4
gpt4 key购买 nike

这两种类型的声明在性能方面有什么区别吗?

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

没有明确指定“self”参数作为第一个参数。

关于function - Lua中的方法声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6798526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com