【发布时间】:2021-09-23 04:56:46
【问题描述】:
我正在研究 kotlin 中的运算符重载,我遇到了invoke 方法。当我对它进行研究时,我发现它与每个类的 init 构造函数非常相似。
我无法理解差异,它们似乎很相似,因为我们在 invoke 方法中所做的一切,也可以在 init 构造函数中完成。
那么有什么区别,我们应该在什么时候使用它们呢?
【问题讨论】:
-
我不明白你的意思“我们在调用方法中所做的一切,都可以在 init 构造函数中完成”。
invoke是一个方法(恰好也是一个运算符),init是一个初始化块——它们没有任何共同之处。我认为您的问题是缺乏阅读文档和尝试代码的投资 -
@Neo 我不知道你从我的问题中得到了什么,但我并没有询问结构。我问每个的用途是什么。
-
invoke 可用于 lambdas,尤其是可空 lambdas 以使用所需参数调用主体,而 init 是在类的构造函数调用之后调用的块,以创建对象以初始化某些属性或做其他事情。不知道你为什么对它们感到困惑。
标签: android kotlin operator-overloading invoke init