我可以在课外使用扩展名* member *吗?

时间:2019-03-21 14:07:13

标签: kotlin extension-function

如果我在类B内声明了类型A的扩展功能:

php artisan make:model <ModelName> -a

我可以完全从类B之外的代码中调用此函数吗?

class A

class B {
    fun A.foo() = "Hello"
}

2 个答案:

答案 0 :(得分:1)

是:

with(b) { 
    a.foo() 
} 

使用B接收器接受lambda的其他函数也可以正常工作。

答案 1 :(得分:0)

否,当您在B内定义A.foo时,已将函数有效地划分为该类。但是,您始终可以将其移到类之外...函数也可以是顶级的:)