All*_*iao 5 java switch-statement java-13
我正在尝试使用增强的 switch 语句初始化两个变量:
int num = //something
boolean val1;
String val2;
val1, val2 = switch(num) {
case 0 -> (true, "zero!");
case 1 -> (true, "one!");
default -> (false, "unknown :/");
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
由于您已经在使用 Java-13,我建议不要使用额外的库来表示元组,并使用Map.entry(在 Java-9 中引入)和var推断出的局部变量类型的语法糖。
var entry = switch (num) {
case 0 -> Map.entry(true, "zero!");
case 1 -> Map.entry(true, "one!");
default -> Map.entry(false, "unknown :/");
};
boolean val1 = entry.getKey();
String val2 = entry.getValue();
Run Code Online (Sandbox Code Playgroud)
Java 中没有元组解包。仍然使用 switch 表达式的快速替代方案可以使用自定义类(Pair在以下示例中使用):
Pair<Boolean, String> val = switch (num) {
case 0 -> Pair.of(true, "zero!");
case 1 -> Pair.of(true, "one!");
default -> Pair.of(false, "unknown :/");
};
boolean val1 = val.getLeft();
String val2 = val.getRight();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |