Готовый перевод The Swift Programming Language / Swift язык программирования - Книга на русском: Functions and Closures
Используйте funt для объявления функций. Для того чтобы вызвать функцию используйте её имя вместо со списком
аргументов в скобках. Используйте -> для отделения аргументов и типов от
типа возвращаемой функции.
1 func greet(name: String, day: String) -> String {
2 return "Hello \(name), today is \(day)."
3 }
4 greet("Bob", "Tuesday")
ЭСКСПЕРИМЕНТ
Используйте таплы для возвращения множество значений из функции.
1 func getGasPrices() -> (Double, Double, Double) {
2 return (3.59, 3.69, 3.79)
3 }
4 getGasPrices()
Функции также могут принимать неопределенное значение аргументов, образуя из них массив.
1 func sumOf(numbers: Int...) -> Int
2 var sum = 0
3 for number in numbers {
4 sum += number5 }
6 return sum
7 }
8 sumOf()
9 sumOf(42, 597, 12)
ЭКСПЕРИМЕНТ
Напишите функцию, которая вычисляет среднее из аргументов.
Функция может быть вложена. Вложенные функции имеют доступ к переменным, которые объявлены
во внешней функции. Вы можете использовать вложенные функции для удобства в
длинных или сложных функциях.
1 func returnFifteen() -> Int {
2 var y = 10
3 func add() {
4 y += 5
5 }
6 add()
7 return y
8 }
9 returnFifteen()
1 func makeIncrementer() -> (Int -> Int) {
2 func addOne(number: Int) -> Int {
3 return 1 + number
4 }
5 return addOne
6 }
7 var increment = makeIncrementer()8 increment(7)
1 func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool {
2 for item in list {
3 if condition(item) {
4 return true
5 }
6 }
7 return false
8 }
9 func lessThanTen(number: Int) -> Bool {
return number < 10
}
var numbers = [20, 19, 7, 12]
hasAnyMatches(numbers, lessThanTen)
1 numbers.map({
2 (number: Int) -> Int in
3 let result = 3 * number
4 return result
5 })
ЭКСПЕРИМЕНТ
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/52121/221822
Переводчики: keo82, WRS
Настройки
Готово:
