Вы можете использовать для этого объявление vararg
:
fun myFunction(vararg dataList: MyDataStruct) {
// code can use dataList as an array / list of MyDataStruct
}
Однако это может развалиться с параметрами типа, указанными в MyDataStruct
, но вы все равно можете обрабатывать различные значения в объекте сwhen
предложение.
Например (при условии, что вы сохраняете свойство value в своей структуре данных):
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
необязательно, если у вас есть вызов функции из одной строки. Текущий пример представляет собой набор пустых анонимных функций, которые должны компилироваться, но ничего не делать. Вам также понадобятся эти скобки, если вам нужно выполнить многострочную функцию, когда значение имеет определенный тип.