Для этой цели вы можете использовать Декларации разрушения .
val (a, b, c) = if (condition) listOf(1, 2, 3) else listOf(4, 5, 6)
Для разных типов вы можете комбинировать его с созданием объекта:
data class ValueInitializer(
val a: Int,
val b: String
)
val (a: Int, b: String) = if (condition)
ValueInitializer(1, "String")
else
ValueInitializer(2, "String2")
Еще один моментчто вы можете использовать val
вместо var
в вашем первом примере, если a
и b
- локальные переменные.Для полей класса вы можете инициализировать их внутри блока init
или пометить их модификатором lateinit
.