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

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

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

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

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

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

对此的任何输入赞赏。

2 Solutions collect form web for “如何在类文件中放置Kotlin扩展?”

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

外:

 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 } 
  • 受保护的成员无法通过扩展功能访问?
  • 如何创建Kotlin DSL - DSL语法Kotlin
  • 不可空的可变映射
  • 如何在同一个src文件夹中运行不同的.kt文件/类?
  • 无法使用Kotlin访问EditText或其他UI组件
  • 设置kotlin扩展名
  • 这个引用在kotlin扩展属性的lazy初始值设定中
  • findViewById ClassCastExcpetion
  • 创建Kotlin对象的新实例
  • Android工作室插件ID:'kotlin-android-extensions'
  • 这个引用在kotlin扩展属性的lazy初始值设定中
  • Kotlin language will be the best programming language for Android.