Функции

Последнее обновление: 31.12.2017

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

func имя_функции (параметры) -> тип_возвращаемого_значения {
	
	// набор инструкций
}

Сначала идет ключевое слово func, после которого идет имя функции. Для именования функции применяются в принципе те же правила, что и при именовании переменных. Для имени функции используется режим camel case.

После имени функции в скобках указываются параметры. Если параметров нет, то просто идут пустые скобки.

Если функция возвращает какое-либо значение, то после параметров в скобках идет стрелка и тип возвращаемого значения. И в конце в фигурных скобках собственно идет блок кода, который и представляет функцию.

Определим простейшую функцию:

func printName(){

	print("Меня зовут Том")
}

Здесь функция называется printName. Эта функция ничего не возвращает, поэтому тут после скобок сразу идут фигурные скобки с набором операторов. Данная функция просто выводит строку "Меня зовут Том".

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

func printName(){

	print("Меня зовут Том")
}

printName()
printName()
printName()

В частности, здесь функция вызывается три раза.

Параметры функции

Теперь используем параметры:

func printInfo(name: String, age: Int){

	print("Имя: \(name) ; возраст: \(age)")
}

printInfo(name: "Tom", age: 18)   // Имя: Tom ; возраст: 18
printInfo(name: "Bob", age: 35)   // Имя: Bob ; возраст: 35

Количество параметров может быть произвольным. В данном случае мы используем два параметра: для передачи имени и возраста. Для каждого параметра определено имя и тип. Например, первый параметр называется name и имеет тип String.

При вызове функции нам надо учитывать имя и тип параметров. При вызове функции ей необходимо передать значения для всех ее параметров по имени. То есть указывается имя параметра и через двоеточие его значение: name: "Tom", причем передаваемое значение должно соответствовать параметру по типу:

printInfo(name: "Tom", age: 18)

Хотя мы можем указать, что при вызове функции не надо указывать имена параметров при ее вызове. Для этого перед именем параметра нужно поставить подчеркивание. Между подчеркиванием и названием параметра должен идти пробел:

func printInfo(_ name: String, _ age: Int){

	print("Имя: \(name) ; возраст: \(age)")
}

printInfo("Tom", 18)	// Имя: Tom ; возраст: 18

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

Значения параметров по умолчанию

Если мы определили два параметра в функции, то соответственно при ее вызове мы также должны передать ей два значения для параметров. Однако мы также можем установить для параметров значения по умолчанию:

func printInfo(name: String = "Tom", age: Int = 22){

	print("Имя: \(name) ; возраст: \(age)")
}

printInfo(name: "Bob", age: 18)   // Имя: Bob ; возраст: 18
printInfo(name: "Alice")  // Имя: Alice ; возраст: 22
printInfo()	// Имя: Tom ; возраст: 22

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

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850