这是有效的Kotlin文件:
10,20,30,40,50,60,70,80
1,2,3,4,5,6,7,8
但是,在我的项目中,fun <A> fourtyTwo(foo: A): Int = 42
val bar = listOf("candy", "chips", "drink").map(::fourtyTwo)
是在另一个文件中定义的top level function。
是否可以通过其他文件将callable reference用作顶层函数?
答案 0 :(得分:3)
是的,当然。您需要确保该函数已导入,然后像往常一样进行可调用的引用。
答案 1 :(得分:1)
如yole's answer中所述,您可以通过将功能导入其他文件来从其他文件调用顶级功能。 在您的情况下,它会像这样解决:
文件A
fun <A> fourtyTwo(foo: A): Int = 42
文件B
import fourtyTwo
val bar = listOf("candy", "chips", "drink").map(::fourtyTwo)
在顶层函数位于声明foo.bar软件包名称的文件中的情况下,文件B可能如下所示:
import foo.bar.fourtyTwo
val bar = listOf("candy", "chips", "drink").map(::fourtyTwo)
或类似这样:
val bar = listOf("candy", "chips", "drink").map(::foo.bar.fourtyTwo)
稍后可能有用的是调用具有相同签名但位于不同程序包中的函数。
希望这对您有帮助!