Когда использовать круглые скобки, а не в вложенной функции

Очень новый для Swift. Я действительно смущен, когда вы добавляете ( ) и когда вы не возвращаете возврат из вложенной функции. Примером является код ниже. Я знаю, что вложенная функция, вероятно, не нужна, но только в качестве примера:

func areaOfTriangle (width: Double, height: Double) -> Double {
    func divided () -> Double {
        return (width * height) / 2
    }
    return divided()
}

В return divided() часть, я помню, где-то в моих уроках, что иногда ( ) не нужен Может ли кто-нибудь представить какую-то логику относительно того, почему в этом случае нужны скобки?

Благодарю.

3 ответа

Решение

Скобки в вызове функции не нужны, если функция:

  • Принимает только один параметр
  • Сам параметр является функцией

Например, функция func funcWithHandler(handler: () -> Void) {} можно назвать так: funcWithHandler { print("my handler executed") }

Использование () когда вы хотите выполнить функцию.

return divided()

возвращает результат divided, который является Double,

return divided

возвращает функцию, которая возвращает Double когда выполнено.

Эта строка возвращает значение вызова функции;

return divided()

Эта строка возвращает значение "разделенной" переменной. Эта переменная также может относиться к функции (не к значению, а к самой функции);

return divided
Другие вопросы по тегам