Почему функция имеет несколько типов возврата в swift? - PullRequest
0 голосов
/ 15 декабря 2018

Я заметил, что эта функция имеет уникальный тип возврата

func chooseStepFunction(backward: Bool) -> (Int) -> Int {
func stepForward(input: Int) -> Int { return input + 1 }
func stepBackward(input: Int) -> Int { return input - 1 }
return backward ? stepBackward : stepForward
}

1 Ответ

0 голосов
/ 15 декабря 2018

Эта функция на самом деле просто возвращает другую функцию с Int в качестве параметра и в качестве возвращаемого типа.Это делает это:

(Int) -> Int

В этом случае эта функция возвращает одну из ваших подфункций.


Итак, когда вам нужно получить результат вашей подфункции, сделайте это следующим образом:это

chooseStepFunction(backward: true)(1)  /* returns 0 */
chooseStepFunction(backward: false)(1) /* returns 2 */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...