Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Тип Функций в роли Типа Возврата Результата ⇐ ПредыдущаяСтр 6 из 6
Вы можете использовать тип функции в роли типа возврата от другой функции. Сделать это вы можете, написав полный тип функции сразу после стрелки (->) возвращённой функции.
Следующий пример объявляет две простые функции с именами шагВперёд и шагНазад. Функция шагВперёд возвращает значение на единицу больше первоначального, а шагНазад на единицу меньше. Обе функции имеют тип(Int) -> Int:
func шагВперёд(ввод: Int) -> Int { return ввод + 1 } func шагНазад(ввод: Int) -> Int { return ввод - 1 }
Следующая функция - функцияВыборХода, чей тип возврата такой: (Int) -> Int. Функция функцияВыборХода возвращает функцию шагВперёд или шагНазад, основанную на значении параметра назад типа Bool:
func функцияВыборХода(назад: Bool) -> (Int) -> Int { return назад? шагНазад: шагВперёд }
Теперь вы можете использовать функцияВыборХода что бы получить функцию в соответствии с направлением в какую стороны мы должны двигаться:
var текущееЗначение = 3 let идтиКНулю = функцияВыборХода(текущееЗначение > 0) // идтиКНулю теперь соответствует функции шагНазад()
Приведённый пример выбирает в положительную или отрицательную сторону нам нужно двигаться что бы изменять переменную текущееЗначение в сторону нуля. текущееЗначение имеет начальное значение 3, сравнениетекущееЗначение > 0 даёт ответ true и заставляет функцияВыборХода использовать функцию шагНазад. Ссылка на выбранную и возвращаемую функцию находится в константе идтиКНулю.
Теперь эта константа идтиКНулю отсылает к выбранной правильной функции, которая используется для изменения текущееЗначение в сторону нуля:
println("Считаем до нуля:") // Считаем до нуля: while текущееЗначение!= 0 { println("\(текущееЗначение)... ") текущееЗначение = идтиКНулю(текущееЗначение) } println("Ноль!") // 3... // 2... // 1... // Ноль!
|