Когда использовать круглые скобки, а не в вложенной функции
Очень новый для 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