Используйте 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