Почему Xcode не выдает ошибку компиляции?

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

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

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

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

1 ответ

Решение

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
}
Другие вопросы по тегам