为什么switch语句中的'case'为负缩进?

Luk*_*rry 6 xcode swift swift2

我不认为这完全是一个Swift/Xcode的东西,因为我已经在其他语言/ IDE中看到过它.

为什么switch语句中的'case'为负缩进(我不确定这是否是正确的措辞方式)

我希望Switch语句看起来像这样

switch(type) {
    case 1:
        // do something
    break;
    case 2:
        // do something else
    break;
    default:
        // default
    break;
}
Run Code Online (Sandbox Code Playgroud)

但Xcode坚持这一点

switch(type) {
case 1:
    // do something
    break;
case 2:
    // do something else
    break;
default:
    // default
    break;
}
Run Code Online (Sandbox Code Playgroud)

这是一个错误,还是有原因的?如果是这样,它是什么?这已经让我误解了很长一段时间.

Cou*_*per 6

好吧,我猜这个break语句属于case子句中的"section".和任何其他声明一样,它相对于case.至于case相对switch - 我不知道.

但我完全和你在一起 - 无论如何格式化都是个人偏好的问题.由于Xcode中的格式规则没有明确定义 - 它不能是一个bug;)

FWIW,我喜欢这种风格

switch x {
    case 1:
        // do something
        break
    case 2:
        // do something else
        break
    default:
        // default
        break
}
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,在Swift中,你不需要`switch`中的任何`break`.这是隐含的.如果你想强迫案件堕落,你就有了'fallthrough`陈述 (3认同)