Почему XCode не выдает ошибку компиляции? - PullRequest
0 голосов
/ 08 января 2020
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    0
}

Почему компилятор не выдает ошибку, даже если ключевое слово return не добавляется при возврате встроенных типов данных?

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

В то время как в случае не встроенных типов он выдает ошибку: Отсутствует возврат в функции, ожидаемой для возврата

1 Ответ

0 голосов
/ 08 января 2020

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
}
...