Готовый перевод 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

Настройки

Готово:

79.48% КП = 1.0

Непереведённые фрагменты будут пропущены.