Far*_*deh 5 kotlin kotlin-extension
我知道在Kotlin中使用扩展函数来扩展类的功能(例如,来自库或API的功能).
但是,在代码可读性/结构方面,使用扩展函数是否有任何优势:
class Foo { ... }
fun Foo.bar() {
// Some stuff
}
Run Code Online (Sandbox Code Playgroud)
与成员函数相反:
class Foo {
...
fun bar() {
// Some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
?
有推荐的做法吗?
如果满足以下所有条件,则应使用成员函数:
如果符合以下任何条件,则应使用扩展功能:
通常,成员函数比扩展函数更容易找到,因为它们保证在它们所属的类中(或超类/接口).
它们也不需要导入到使用它们的所有代码中.
从我的角度来看,使用扩展功能有两个令人信服的理由:
要"扩展"一个类的行为,你不是作者/不能改变的(并且继承没有意义或不可能).
为特定功能提供范围.例如,扩展函数可以被声明为独立函数,在这种情况下它可以在任何地方使用.或者您可以选择将其声明为另一个类的(私有)成员函数,在这种情况下,它只能从该类内部使用.
听起来#1在你的情况下并不是一个问题,所以它真的更像是#2.
| 归档时间: |
|
| 查看次数: |
1831 次 |
| 最近记录: |