可以在不导入的情况下从另一个包调用扩展函数吗?
给定一个扩展函数:
package ext
fun Int.plusOne() = this + 1
有没有办法在不先导入函数的情况下调用此函数?
我可以在没有导入的情况下调用非扩展函数(忽略该函数不需要导入,只需注意语法是有效的):
val el: List<Int> = kotlin.emptyList()
我可以在不导入的情况下实例化类:
val str = java.lang.String("yo.")
但我还没有找到对应的扩展(我知道有些例子很愚蠢):
val i = 42
// All those are not valid syntax...
i.ext.plusOne()
ext.plusOne(i)
i.(ext.plusOne)()
i.(ext.plusOne())
ext.i.plusOne()
val pO = ext.plusOne
i.pO()
奖励:同样的问题,但针对的是扩展物业.
编辑:要添加到无效示例列表中,即使在分机接收方是隐式的位置,也不允许使用FQDN:
// Good:
import ext.plusOne
val four = with(3) { plusOne() }
// Unresolved reference:
val four = with(3) { ext.plusOne() }