如何在类文件中放置Kotlin扩展?

也许这个问题是在官方文档中回答的,但是我没有看到它…

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

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

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

我们似乎无法在科特林做相应的事情? 我总是发现自己的自我写作,例如一个Jazz.kt和一个JazzExtensions.kt ,这并不总是构建代码的最清晰的方式。

对此的任何输入赞赏。

您可以将扩展函数放置在类的内部或外部:

外:

 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") } } } 

Swift没有什么不同:

 class Jazz { val a = "Jazz" } fun Jazz.swing() = a //////////// fun main(args: Array<String>) { print(Jazz().swing()) // >>> Jazz }