Функция предназначена для группировки кода с целью его повторного использования.
Синтаксис объявления функции:
func имяФункции (входной параметр:тип параметра)->тип возвращаемого значения{
тело функции
}
Исполнение кода функции осуществляется вызовом функции:
имяФункции(внешнее имя входного параметра функции:аргумент соответствующего типа)
(Аргумент функции - значение или его символьное имя Параметр функции - принятый функцией аргумент)
Параметры и аргументы более одного записываются через запятую. Все аргументы должны соответствовать типу соответствующего параметра. Аргументы должны записываться в порядке соответствующем порядку записи параметров. Параметры являются константами и не могут быть изменены. Параметры и переменные объявленный внутри функции недоступны вне функции.
func someFunction(num1:Int, str1:String)->String{
return "Мне \(num1) \(str1)"
}
При вызове функции указывается ее имя. А входным параметрам передаются аргументы.
someFunction(num1:16, str1:"лет")//аргуметы
Ключевое слово return обозначает возвращаемое значение завершая выполнение кода функции.
Возвращаемое значение можно записать в переменную или константу:
var someVar=someFunction(num1:16, str1:"лет")
print(someVar)//Мне 16 лет
Если функция не возвращает значение, то это можно обозначить следующим образом:
отсутствием обозначения
func someFunction(){
print("Мне 16 лет")
}
->()
func someFunction()->(){
print("Мне 16 лет")
}
->Void
func someFunction()->Void{
print("Мне 16 лет")
}
Если перед именем параметра функции установить символ нижнего подчеркивания и пробел, то передача аргумента осуществляется без указания имени параметра:
func someFunction(_ num1:Int, str1:String){
print("Мне \(num1) \(str1)")
}
someFunction(16, str1:"лет")
Таким же способом можно указать произвольное имя внешнего параметра:
func someFunction(age num1:Int, str1:String){
print("Мне \(num1) \(str1)")
}
someFunction(age:6, str1:"лет")
Чтобы изменить значение параметра функции, следует присвоить это значение переменной внутри функции:
func someFunction (_ str:String){
var text=str
print(text)//JavaScript
text="SWIFT"//присваивается другое значение
print(text)//SWIFT
}
someFunction("JavaScript")
Попытка изменить значение str="SWIFT" приведет к ошибке сообщающей, что это константа.