39 Switch 返回值
switch 可以在拆解枚举负载时产生返回值。
norm
enum Result {
Success(Integer count),
Failure(String reason)
}
String describe(Result result) {
return switch result {
case Success(Integer count) { break "${count} items" }
case Failure(String reason) { break reason }
}
}
main() {
printLine(describe(result: Result.Success(count: 3)))
printLine(describe(result: Result.Failure(reason: "empty")))
}预期输出:
text
3 items
empty每个 case 绑定匹配的负载,并用 break 后面的字符串产生结果。函数返回这个 switch 结果;作为语句使用时则不要求结果值。
动手试试:让 Success 分支在数量前加上说明文字。
详细规则:参考。