为什么Xcode不会引发编译错误?

时间:2020-01-08 14:19:06

标签: swift5.1 xcode11.1

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    0
}

为什么即使在返回内置数据类型时未添加return关键字,编译器也不会引发错误?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    UITableViewCell()
}

如果是非内置类型,则会引发错误:缺少预期返回的函数中的返回

1 个答案:

答案 0 :(得分:0)

Swift 5.1添加了对于具有单个表达式的函数省略return关键字的功能。参见https://github.com/apple/swift-evolution/blob/master/proposals/0255-omit-return.md

与内置数据类型和非内置数据类型无关;实际上,我什至不确定您的意思。

如果收到错误消息,那是因为函数不再是单个表达式。

// This compiles
func foo() -> Int {
  42
}

func bar() -> Int {
  #warning("This won't compile")
  42
}