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

Is there any technical benefit in adding semicolons in 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 个语句。