And*_*Dev 6 android kotlin kotlin-extension
假设我想将以下代码作为可重用的组件:
fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
val tmp = this[index1] // 'this' corresponds to the list
this[index1] = this[index2]
this[index2] = tmp
}
Run Code Online (Sandbox Code Playgroud)
我想在我的应用程序中的任何地方使用它,如下所示:
val l = mutableListOf(1, 2, 3)
l.swap(0, 2)
Run Code Online (Sandbox Code Playgroud)
如果我错了,请纠正我,但我相信函数扩展声明可以存在于类之外。那么在 Android 应用程序中,我应该把这个声明放在哪里?或者它甚至重要吗?compile 是否只编译代码,而不管扩展在哪里声明并使其可在全局范围内重用,还是必须使其成为类的一部分?
您可以创建一些文件,例如ListExt.kt
您想要的任何位置(例如在 package 中main_package_name/util/ListExt.kt
)并将扩展功能放在那里,它将在整个项目中可用。所以ListExt.kt
文件的内容可以是:
package main_package_name.util
fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
val tmp = this[index1] // 'this' corresponds to the list
this[index1] = this[index2]
this[index2] = tmp
}
// other extension functions on the Lists
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1612 次 |
最近记录: |