gpt4 book ai didi

Swift 2 - 在 if 语句上使用 break 的用例?

转载 作者:IT王子 更新时间:2023-10-29 05:17:07 26 4
gpt4 key购买 nike

Swift 2 的指南提到您可以结束 if 语句的程序执行。我个人从未在 if 语句中使用过 break。

A break statement ends program execution of a loop, an if statement, or a switch statement...When a break statement is followed by the name of a statement label, it ends program execution of the loop, if statement, or switch statement named by that label.

在什么情况下会在 if 语句中使用 break?这个语言功能似乎没用。

TEST:
if (true) {
break TEST
}

最佳答案

例如,如果您想引用数字集(偶数/有理数/负数)来描述一个数字(使用字符串),您的代码可能如下所示:

if condition1 {
// code
if condition2 {
// code
if condition3 {
// code
if condition4 {
//code
}
}
}
}

您可以通过重构(使用 guard)实现相同的逻辑,但没有嵌套的 ifs:

OuterIf: if condition1 {
// code

guard condition2 else { break OuterIf }
// code

guard condition3 else { break OuterIf }
// code

guard condition4 else { break OuterIf }
// code
}

// reads even better when breaking out of "do"
scope: do {
guard condition1 else { break scope }
// code

guard condition2 else { break scope }
// code

guard condition3 else { break scope }
// code

guard condition4 else { break scope }
// code

}

你可能认为这也可以通过 switchfallthrough 来实现,但这不适用于“正常”情况,因为它检查所有条件,如果一个条件满足以下所有条件甚至不进行评估。

因此必须有条件地调用fallthough

这确实有效,但我的可读性不是很好,更不用说它的“美”了:

let x = 4
switch x {
case _ where condition1:
// code
if condition2 { fallthrough }
case _ where false:
// code
if condition3 { fallthrough }
case _ where false:
// code
if condition4 { fallthrough }
case _ where false:
// code
break
default: break
}

关于Swift 2 - 在 if 语句上使用 break 的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com