Предположим, у меня есть следующий код, который я хочу сделать в качестве компонента многократного использования:
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
}
, и я хочу использовать его в любом месте моего приложения следующим образом:
val l = mutableListOf(1, 2, 3)
l.swap(0, 2)
Поправьте меня, если я ошибаюсь, но я считаю, что объявления расширения функций могут существовать вне класса.Итак, в каком приложении Android я бы поместил эту декларацию?Или это вообще имеет значение?Будет ли компиляция просто компилировать код независимо от того, где объявлено расширение и сделать его повторно используемым глобально, или я должен сделать его частью класса?