Ich habe das folgende Stück CodeMustervergleich auf Tupel in 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")
}
}
, die für mich ein bisschen unübersichtlich sieht aus, als ich in 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
}
}
dazu gewöhnten Gibt es eine Möglichkeit zu erreichen, etwas ähnliches in Kotlin?
Die Logik scheint nicht von der Art des "Gegenstands" abhängig zu sein. Wenn dies der Fall ist, sollten Sie es wahrscheinlich erwähnen oder das Codebeispiel ändern. –