在 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 个语句。
我在 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 个语句。