我有以下代码
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")
}
}
which looks kinda cluttered for me as I got used to this 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
}
}
Is there a way to achieve something similar in Kotlin?