我正在嘗試將以下if 陳述句轉換為switch 運算式。
public static int parseDays(String durationString) {
String[] parts = durationString.split(" ");
if (parts.length == 2) {
return unitValueCalculation(parts[1], parts[0]);
}
else if (parts.length == 1)
{
if (parts[0].equalsIgnoreCase("once")) return 1;
}
return 0;
}
這就是我所擁有的:
public static int parseDays(String durationString) {
switch (durationString) {
case durationString.split(" ").length == 2 -> unitValueCalculation(parts[1], parts[2]);
}
不過,我不確定如何處理案例陳述。
任何想法,將不勝感激。
uj5u.com熱心網友回復:
您提供的代碼可以變成switch-expression這樣:
public static int parseDays(String durationString) {
String[] parts = durationString.split(" ");
return switch(parts.length) {
case 2 -> unitValueCalculation(parts[1], parts[0]);
case 1 -> parts[0].equalsIgnoreCase("once") ? 1 : 0;
default -> 0;
};
}
陣列的長度parts應在括號內()使用switch。并且每個特定的長度 ( 1and 2) 都應該用作case-constant。
該default案例涵蓋了所有未指定的陣列大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/483638.html
上一篇:如果其中一個失敗,為什么Prolog會進一步跳過所有遞回陳述句?
下一篇:惰性條件評估最可靠的方法是什么
