Вот 13 главных вещей, которые нужно знать о функциях в Swift.

В Swift вы определяете функции для выполнения задач с данными.

  1. Функции позволяют организовать код на небольшие повторяющиеся фрагменты, например:
func sayHello() { 
  print("Hello")
}
sayHello() // prints "Hello"

2. Функции могут возвращать значение коду, который их вызывает. Он возвращает значение с помощью символа стрелка (-›):

func usefulNumber() -> Int { 
  return 123
}
let anUsefulNumber = usefulNumber() // 123

3. Вы можете передать параметры функции внутри круглых скобок, которые она сможет использовать для выполнения работы.

func addNumbers(firstValue: Int, secondValue: Int) -> Int { 
  return firstValue + secondValue
}
 let result = addNumbers(firstValue: 1, secondValue: 2) // 3

4. Как мы уже видели, функция может возвращать одно значение, но она также может возвращать несколько значений в форме кортежа. Когда вы вызываете функцию, возвращающую кортеж, вы можете получить доступ к ее значению по индексу или по имени (если они есть):

func processNumbers(firstValue: Int, secondValue: Int) -> (doubled: Int, quadrupled: Int)
{
  return (firstValue * 2, secondValue * 4) 
}
// Accessing by number:
processNumbers(firstValue: 2, secondValue: 4).1 // = 16
// Same thing but with names:
processNumbers(firstValue: 2, secondValue: 4).quadrupled // = 16

5. По умолчанию все параметры после первого должны иметь связанную с ними метку, и эта метка необходима при вызове функции.

Однако иногда метка перед именем параметра не нужна, особенно если совершенно очевидно, для чего нужны параметры. В этих случаях вы можете указать Swift не требовать метки перед параметрами, поместив подчеркивание перед их именами:

func subtractNumbers(_ num1 : Int, _ num2 : Int) -> Int { 
  return num1 - num2
}
subtractNumbers(5, 3) // 2

6. По умолчанию метка параметра совпадает с именем параметра. Однако при желании вы можете указать для параметра собственную метку. Чтобы переопределить метку по умолчанию для параметра, вы помещаете метку перед именем параметра, как показано ниже:

func add(firstNumber num1 : Int…