Swift行业标准的花括号

Dan*_*ith 11 standards loops function swift

在斯威夫特,我试图弄清楚我是否应该这样做

if(true)
{
    //stuff
}
else
{
    //other stuff
}
Run Code Online (Sandbox Code Playgroud)

要么

if(true){
    //stuff
} else{
    //other stuff
}
Run Code Online (Sandbox Code Playgroud)

我知道技术上它没有什么区别,但我想知道行业标准是什么,以及为什么标准是......标准.

Ast*_*oCB 8

支架式通常是意见问题.

然而,在这种情况下,什么去了.Apple使用您在其所有文档中专门提供的第二种语法,其中一个区别是Swift:括号.

来自Swift编程语言指南 - 控制流程:

除了for-in循环之外,Swift还支持for带有条件和增量的传统C风格循环......

以下是此循环格式的一般形式:

for initialization; condition; increment {
    statements
}
Run Code Online (Sandbox Code Playgroud)

分号将循环定义的三个部分分开,如C中所示.但是,与C不同,Swift在整个"初始化"周围不需要括号; 条件; 递增"块.

换句话说,您不需要在条件语句周围使用括号(在任何类型的循环或逻辑语句中),这通常是Apple在文档中使用它的方式.

因此,在您提供的示例中,Apple将使用此样式(请注意花括号之间的间距):

if condition {
    // Stuff
} else {
    // Other stuff
}
Run Code Online (Sandbox Code Playgroud)

文档中的其他一些示例:

// While loops
while condition {
    statements
}

// Do-while loops
do {
    statements
} while condition

// Switch statements
switch some value to consider {
case value 1:
    respond to value 1
case value 2,
value 3:
    respond to value 2 or 3
default:
    otherwise, do something else
}
Run Code Online (Sandbox Code Playgroud)

  • 嗨,丹尼,这是一个很好的问题。**绝对没有技术理由**以一种或另一种方式做到这一点。如果你为我们工作,而你曾经以第二种方式编写代码,你会被当场解雇。相反,苹果的政策是Astro解释的第二种方式。还要注意这适用于所有编程语言。当前的“荒谬可笑”系统(即第二种选择)在许多语言中都很普遍。然而,越来越多的团队正在拒绝它并回到逻辑系统。 (2认同)