在Swift中添加分号有什么技术上的好处吗



我在Objective-C中写了几个程序
我已经看到Swift语法不需要使用分号。

我的问题是,无论如何,使用它们有技术意义吗?

简短的回答是:不。

Swift不需要在代码中的每条语句后面都有分号。只有当您希望在一行中组合多个语句时,才需要它们。

不要在一行中写多条语句,语句之间用分号分隔。

首选:

var swift = "not a scripting language"

不优选:

var swift = "not a scripting language";

有关更多信息,请参阅此页面:
https://github.com/raywenderlich/swift-style-guide#semicolons

在某些情况下(或过去),编译器会将两行不同的两条单独语句作为一条语句。典型的轨迹是return,后面跟着另一个你不想执行的语句。在这种情况下,仅在这种情况中,分号就至关重要。

override func viewDidLoad() {
    super.viewDidLoad()
    return // need semicolon here
    print(1) // oops
}

然而,在现代Swift中,编译器会发出警告并进行补偿。添加分号(return;)会使警告安静下来(尽管它会导致不同的警告)。

否则,分号永远不会有任何技术优势。

是的,您可以在一行中编写多个语句。例如,您可以在需要时编写更紧凑的语句,例如:

var progress: Progress {
    get { _progress.value }
    set { _progress.value = newValue; parent?.update() }
}

不过要谨慎使用。但在这种特定的情况下,我更喜欢它,而不是将所有内容扩展到单独的一行,因为它仍然很可读,只有2条语句。

最新更新