Как разместить расширение 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 }