Tôi có đoạn mã saumẫu phù hợp trên bản ghi trong 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")
}
}
trông kinda lộn xộn đối với tôi như tôi đã quen với điều này trong 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
}
}
Có cách nào để đạt được một cái gì đó tương tự như trong Kotlin?
Logic dường như không phụ thuộc vào loại 'item'. Nếu có, bạn có lẽ nên đề cập đến nó hoặc sửa đổi mẫu mã. –