что если условная функция doSome() находится в сторонней библиотеке? Там вообще получается так что если где-то например есть пакет "util" внутри которого есть этот doSome(), то такой код
import util.doSome
fun main() {
val doSome = "A string"
doSome()
}
operator fun String.invoke(){
println("String invocation")
}
Вызовет doSome из пакета util
А вот такой код:
import util.*
fun main() {
val doSome = "A string"
doSome()
}
operator fun String.invoke(){
println("String invocation")
}
Вызовет уже экстеншен у String
Если оно не в одном пакете, то у вас по импортам должно быть все видно. Конкретно перегрузка invoke, как и любая внешняя перегрузка операторов - это опасная вещь, которую надо использовать только по необходимости.
Обсуждают сегодня