顶级功能vs任何。在科特林

时间:2018-07-11 09:39:31

标签: kotlin

顶级功能和扩展中的哪项?在项目中的每个地方都具有更好的功能?

顶级功能 n

package com.test

fun A(){

}

任何扩展名

package com.test

fun Any.A(){

}

1 个答案:

答案 0 :(得分:5)

Any.A()扩展功能将在所有对象实例上可用,而A()功能是“静态”可用的。因此,如果您不需要在this中使用A(),则不应将其用作扩展函数。

Java 中,签名的差异为ToolsKt.A(Any)ToolsKt.A()