我创建了一个地图,用于存储稍后要调用的函数,其类型如下所示:
Map<String, () -> Unit>
问题是,我不知道每个函数存储的参数有多少,或者这些参数的类型。
目前地图类型Map<String, () -> Unit>
只允许我存储没有参数且返回类型为Unit的函数。
我如何表示一个函数类型,它允许我存储具有未知数量的参数和未知返回类型的函数,但它仍然必须是一个存储的函数。
我正在寻找这样的东西:
Map<String, (T, X, Y, ...) -> V>
如何在Kotlin中表示这种功能类型?
答案 0 :(得分:4)
Kotlin中的所有功能类型都实现Function
(https://docs.google.com/spreadsheets/d/1Q4ZUSrbRnBLqjyEGVGTSv919GBVpPHcDWi7I74sOqjY/edit?usp=sharing),因此您可以使用它或其子类
答案 1 :(得分:2)
您可以在列表中传递参数:
Map<String, (List<Any>) -> Unit>