gpt4 book ai didi

java - 如何将列表中的多种类型传递给函数?

转载 作者:行者123 更新时间:2023-12-02 09:24:11 24 4
gpt4 key购买 nike

我希望能够传入未定义数量的MyDataStruct,每个都采用dataList类型,将该数据作为其类型进行处理并返回一个包含列表的列表类型按顺序排列。

我有 JavaScript/TypeScript 背景,正在尝试学习 Kotlin,所以这就是我遇到这个问题的原因。

fun myFunction(
dataList: List<MyDataStruct<String>, MyDataStruct<Int>, MyDataStruct<Boolean>>
): List<List<String>, List<Int>, List<Boolean>> {
val data = dataList.map {
...mutableListOf<mutableListOf.typeAssiged>
}
}

最佳答案

您可以使用 vararg 声明来实现:

fun myFunction(vararg dataList: MyDataStruct) {
// code can use dataList as an array / list of MyDataStruct

}

但是,这可能与您在 MyDataStruct 上指定的类型参数不同,但您仍然可以使用 when 子句处理对象中的不同值。

例如(假设您在数据结构中保留值属性):

for(myDataStruct in dataList) {
when (myDataStruct.value) {
is Int -> {/*do something with int*/}
is String -> {/*do something with string*/}
is Boolean -> {/*do something with boolean*/}
else -> {/*do something else*/}
}

}

最后,如果您有单行函数调用,则每个 when 语句中箭头后面的括号 ({}) 是可选的。当前的示例是一堆空的匿名函数,它们应该编译但不会执行任何操作。如果您需要在值属于特定类型时执行多行函数,则还需要这些括号。

关于java - 如何将列表中的多种类型传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58455257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com