顶级功能和扩展中的哪一个在项目中到处都有功能?
Top level functio
package com.test fun A(){ }
Extension Any
package com.test fun Any.A(){ }
Any.A() 扩展函数可用于所有对象实例,而 A() 函数可用"statically" . 因此,如果您不需要在 A() 中使用 this ,则不应将其作为扩展函数 .
Any.A()
A()
this
在Java中,签名的差异是 ToolsKt.A(Any) vs ToolsKt.A() .
ToolsKt.A(Any)
ToolsKt.A()
1 回答
Any.A()
扩展函数可用于所有对象实例,而A()
函数可用"statically" . 因此,如果您不需要在A()
中使用this
,则不应将其作为扩展函数 .在Java中,签名的差异是
ToolsKt.A(Any)
vsToolsKt.A()
.