"Return"关键字对于具有返回值的 swift 函数是否是必需的



下面的代码显示了一个带有返回值的函数的实现。

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进行黑客攻击快速进化

最新更新