4 回答
TA贡献1812条经验 获得超5个赞
中断语句仅从 中断为、切换或选择。没有中断语句可以从 if 或任意块中断。如果可能的话,重新组织和重新排列你的条件,这样你就不会最终陷入你想脱离.if
你也可以做的是使用一个函数(匿名或命名的),当你想要“中断”时,从它返回:
if condition {
func() {
if nestedCondition {
// To break:
return
}
if otherNestedCondition {
// logic
}
}()
}
if otherCondition {
//logic
}
if condition {
if nestedCondition {
// To break:
goto outside
}
if otherNestedCondition {
// logic
}
}
outside:
if otherCondition {
//logic
}
尽管请注意,在Go(以及大多数语言中)使用非常罕见,并且不应该“过度使用”(或根本使用)。goto
TA贡献1824条经验 获得超8个赞
您可以平展 if 子句:
if a {
if b {
// do stuff
// this is where we want to "break"
}
if c {
// do other stuff
}
}
if d {
// do even more stuff
}
可能变成
e := true
if a && b {
// do stuff
e = false
}
if a && c && e { // this will get skipped if e is false
// do other stuff
}
if d {
// do even more stuff
}
通常,嵌套较少的 if 子句更易于阅读。或者,您可以按照其他帖子中的建议隐藏函数中的复杂性。
TA贡献1836条经验 获得超13个赞
尽管实现您尝试执行的操作的正确方法是重构流,但这可能是使用 的适当情况。goto
if condition {
if nestedCondition {
// logic
goto otherCondition
}
if otherNestedCondition {
// logic
}
}
otherCondition:{
//logic
}
- 4 回答
- 0 关注
- 301 浏览
添加回答
举报
