如何从另一个文件对顶级函数进行可调用的引用?

时间:2018-09-07 09:29:00

标签: kotlin

这是有效的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用作顶层函数?

2 个答案:

答案 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)

稍后可能有用的是调用具有相同签名但位于不同程序包中的函数。

希望这对您有帮助!