为什么 Xcode 不会抛出编译错误?

Why does Xcode does not throw compilation error?

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

为什么在 returning 内置数据类型时即使没有添加 return 关键字编译器也不会抛出错误?

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

而在非内置类型的情况下,它会抛出错误:Missing return in a function expected to return

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
}