在Kotlin中,我们可以使用when模式对给定值进行匹配,例如,
when(value) {
1 -> "One"
2, 3 -> "Two or three"
else -> "The rest"
}
Run Code Online (Sandbox Code Playgroud)
通过将两个值嵌套在中,我们还可以同时对多个值进行模式匹配Pair。
when(Pair(value1, value2)) {
(1, "One") -> "One"
(2, "Two"), (3, "Three") -> "Two or three"
else -> "The rest"
}
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何使用通配符同时对多个值进行模式匹配。我尝试了以下两种方法,但均未成功:
when(Pair(value1, value2)) {
(1, _), (_, "One") -> "One"
(2, _), (_, "Two"), (3, _), (_, "Three") -> "Two or three"
else -> "The rest"
}
Run Code Online (Sandbox Code Playgroud)
和
when(Pair(value1, value2)) {
(1, else), (else, "One") -> "One"
(2, else), (else, "Two"), (3, else), (else, "Three") -> "Two or three"
else -> "The rest"
}
Run Code Online (Sandbox Code Playgroud)
如何匹配任一变量的大小写?
Kotlin不具备其他语言可能会提供的模式匹配功能。请参阅此处以获取有关功能的讨论:https : //discuss.kotlinlang.org/t/destructuring-in-when/2391/18
您的用例不受的支持when。
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |