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