下面的代码显示了一个带有返回值的函数的实现。
func isValid() -> Bool {
self.txtComment.text.isEmpty
}
正如您可能注意到的,return关键字没有被使用。即使如此,也没有语法错误!
这在逻辑上正确吗?还是会出现逻辑问题
它被称为具有隐式返回的函数:
如果函数的整个主体是单个表达式,则函数隐式返回该表达式。
在swift 5.1中添加。您可以查看提案
是的,这在逻辑上与swift 5.1一样正确。如果函数只有一行代码,则不再需要显式键入return关键字。
Swift允许我们在函数中只有一个表达式时跳过使用return关键字。所以,这两个函数做的事情是一样的:
func doSomething() -> Int {
return 5 + 5
}
func doSomethingMore() -> Int {
5 + 5
}
三元运算符在这里也起作用。例如:
func sayHello(to name: String) -> String {
if name == "Hasan" {
return "Hey Smart!"
} else {
return "Hello, (name)"
}
}
我们可以使用这样的三元运算符:
func sayHello(to name: String) -> String {
name == "Hasan" ? "Hey Smart!" : "Hello, (name)"
}
因此,当该功能运行时,它实际上可以归结为:
func greet(name: String) -> String {
"Hey Smart!"
}
参考:使用Swift进行黑客攻击快速进化