Swift需要详尽的switch语句,并且每种情况都有可执行代码。
“ switch”中的“ case”标签应至少包含一个可执行语句
是否有人愿意以一种好的方式来处理您不想实际做任何事情的情况?我可以在其中放一个println(),但这感觉很脏。
Answers:
根据这本书,您需要在break
此处使用:
每个案例的范围不能为空。因此,您必须在每个案例标签的冒号(:)之后至少包含一个语句。
break
如果您不想在匹配大小写的主体中执行任何代码,请使用单个语句。
break
表明没有分支break
可能会崩溃。
()
。尽管如此,我还是更喜欢break
它,因为它使事情变得更加清晰。使用关键字fallthroug
来插入语句。
default:
情况时,这很烦人。那似乎不是一件好事。我也同意这暗示了c会由于行为而失败,这不是Swift所做的(虽然知道它可能会失败)。
您可以使用以下break
语句:
let vegetable = "red pepper"
var vegetableComment: String = "Nothing"
switch vegetable {
case "cucumber", "watercress":
break // does nothing
case let x where x.hasSuffix("pepper"):
vegetableComment = "Is it a spicy \(x)?"
default:
vegetableComment = "Everything tastes good in soup."
}
从文档修改的示例
我发现的最干净的解决方案是,将switch案例中的最后一条语句作为默认值包含在内。这样就避免了添加break
或其他不必要的语句的需要,同时仍然涵盖了所有可能的情况。
例如:
switch myVar {
case 0:
myOtherVar = "Red"
case 1:
myOtherVar = "Blue"
default:
myOtherVar = "Green"
}