如何在类文件中放置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 }