Mam następujący fragment koduWzorzec dopasowania na krotki w Kotlin
fun changeSelection(item: FileOrFolder, selected: Boolean) {
selection = when(item) {
is Folder -> {
when(selected) {
true -> selection + item
false -> selection - item
}
}
is File -> {
when(selected) {
true -> selection + item
false -> selection - item
}
}
else -> throw Exception("unreachable")
}
}
która wygląda trochę zagracone dla mnie jak przyzwyczaiłem się do tego w Scala
def changeSelection(item: FileOrFolder, selected: Boolean) {
(item, selected) match {
case (item: Folder, true) => selection + item
case (item: Folder, false) => selection - item
case (item: File, true) => selection + item
case (item: File, false) => selection - item
}
}
Czy istnieje sposób, aby osiągnąć coś podobnego w Kotlin?
logiki nie wydaje się w ogóle zależeć od typu elementu. Jeśli tak, prawdopodobnie powinieneś o tym wspomnieć lub zmodyfikować próbkę kodu. –