也许这个问题已在official doc中得到解答,但我没有看到它......
在Swift中,我们习惯于编写像
这样的东西class Jazz {
...
}
extension Jazz {
func swing() {
...
}
}
并将整个代码段放在一个文件中,例如Jazz.swift
。
我们似乎无法在Kotlin做相应的事情?我总是找到自己的写作,例如一个Jazz.kt
和一个JazzExtensions.kt
,它根本不是构建代码的最清晰方式。
对此的任何意见表示赞赏。
答案 0 :(得分:2)
您可以将扩展功能放在班级内部或外部:
外:
class Jazz { ... }
fun Jazz.bar() {
println("hello")
}
内部(companion object
):
import YOUR_PACKAGE.Jazz.Companion.bar
fun main(args: Array<String>) {
Jazz().bar()
}
class Jazz {
companion object {
fun Jazz.bar() {
println("hello")
}
}
}
答案 1 :(得分:1)
与 Swift :
没有什么不同class Jazz {
val a = "Jazz"
}
fun Jazz.swing() = a
////////////
fun main(args: Array<String>) {
print(Jazz().swing()) // >>> Jazz
}