具有未知数量参数的Lambda类型

时间:2017-06-24 14:20:54

标签: kotlin

我创建了一个地图,用于存储稍后要调用的函数,其类型如下所示:

Map<String, () -> Unit>

问题是,我不知道每个函数存储的参数有多少,或者这些参数的类型。

目前地图类型Map<String, () -> Unit>只允许我存储没有参数且返回类型为Unit的函数。

我如何表示一个函数类型,它允许我存储具有未知数量的参数和未知返回类型的函数,但它仍然必须是一个存储的函数。

我正在寻找这样的东西:

Map<String, (T, X, Y, ...) -> V>

如何在Kotlin中表示这种功能类型?

2 个答案:

答案 0 :(得分:4)

Kotlin中的所有功能类型都实现Functionhttps://docs.google.com/spreadsheets/d/1Q4ZUSrbRnBLqjyEGVGTSv919GBVpPHcDWi7I74sOqjY/edit?usp=sharing),因此您可以使用它或其子类

答案 1 :(得分:2)

您可以在列表中传递参数:

Map<String, (List<Any>) -> Unit>