2

也许官方文档中回答了这个问题,但我没有看到它......

在 Swift 中,我们习惯于编写类似的东西

class Jazz {
...
}

extension Jazz {
    func swing() {
    ...
    }
}

并将整个代码片段放在一个文件中,比如Jazz.swift.

我们在 Kotlin 中似乎无法做相应的事情?我总是发现我的 selfe 写作,例如 oneJazz.kt和 one JazzExtensions.kt,这并不总是构建代码的最清晰的方式。

对此的任何意见表示赞赏。

4

2 回答 2

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")
        }
    }
}
于 2017-08-30T07:11:07.850 回答
1

它与Swift并没有太大的不同:

class Jazz {
    val a = "Jazz"
}

fun Jazz.swing() = a

////////////

fun main(args: Array<String>) {
    print(Jazz().swing()) // >>> Jazz
}
于 2017-08-30T07:13:16.190 回答