Вы можете просто сделать это:
randomList.foreach {
case 1 => func1(config, prefix)
case 2 => func2(config, prefix)
case 3 => func3(config, prefix)
case 4 => func4(config, prefix)
}
, и это будет работать как сопоставление с шаблоном для номера, переданного обратному вызову foreach
.
Другая проблема с вашим кодом заключается в том, что вы хотитедля возврата ChainBuilder
из callRandomFunctions
, но вы используете foreach
, который завершает оператор, возвращающий Unit
.Возможно, вы хотели использовать map
и изменить тип возвращаемого значения на List[ChainBuilder]
:
def callRandomFunctions(config: Config, prefix: String): List[ChainBuilder] = {
val randomList = Random.shuffle(List(1, 2, 3, 4))
randomList.map {
case 1 => func1(config, prefix)
case 2 => func2(config, prefix)
case 3 => func3(config, prefix)
case 4 => func4(config, prefix)
}
}