Uploaded by Александр Щербак

Конспект Swift skilbox

advertisement
Урок 2. Функции
Тема урока: функции в языке программирования Swift.
Функция — это самодостаточный блок кода с определённым функционалом,
который может быть вызван из разных частей программы и переиспользован много
раз.
Что дают функции:
● Код содержит меньше дублирования.
● Код легче читается.
● Изменения вносятся быстрее.
Каждой функции присваивается имя, а для работы компилятора необходимо указать
типы входных и выходных параметров, но их может и не быть.
Объявление функций:
1. Ключевое слово func.
2. Имя функции для вызова.
3. Имя и тип входного параметра.
4. Тип выходного параметра.
5. Ключевое слово, конец функции, после которого мы возвращаем результат.
6. Закрывающие скобки указывают границы тела функции.
func printHello(name: String) -> String {
let greeting = "Hello, " + person + "!"
return greeting
}
printHello(name: «World»)
Функцию можно вызывать многократно и переиспользовать с разными входными
аргументами — главное, чтобы они соответствовали типу.
Функция без параметров:
Выходное значение есть, тип Void.
func printHello() -> String {
let hello = "Hello, world!"
print(hello)
}
Функции с несколькими входными параметрами:
func greet(person: String, alreadyGreeted: Bool) -> String {
if alreadyGreeted {
return greetAgain(person: person)
} else {
return greet(person: person)
}
}
print(greet(person: "Tim", alreadyGreeted: true))
// Выведет "Hello again, Tim!"
Функции могут быть вложенными. Вложенные функции имеют доступ к
переменным, которые были объявлены во внешней функции. Вы можете
использовать вложенные функции, чтобы упорядочивать код в длинных или
сложных функциях.
func returnFifteen( ) -> Int {
var y=10
func add( ) {
y+=5
}
add( )
return y
}
returnFifteen( )
Функции — это объект первого класса. Это означает, что результатом функции может
быть другая функция.
func makeIncrenenter( ) -> ((Int) -> Int) {
func add0ne(number: Int) -> Int {
return 1+number
}
return add0ne
}
var increment = makeIncrenenter( )
Increnent(7)
Функция может принимать другую функцию в качестве аргумента.
func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool {
for item in list {
if condition(item) {
return true
}
}
return false
}
func lessThanTen(number: Int) -> Bool {
return number < 10
}
var number = [20,19,7,12]
hasAnyMatches(list: numbers, condition: lessThanTen)
Функции, возвращающие несколько значений:
1.
Кортеж.
Используйте кортеж для создания единого составного значения, например, для
возвращения нескольких значений из функции. Ссылаться на элементы кортежа
можно либо через имена, либо через порядковые номера.
func calculateStatistics(scores: [Int]) -> (min: Int, max: Int, sum: Int){
var min = scores [0]
var max = scores [0]
var sum = 0
for score in scores {
if score > max {
max = score
} else if score < min {
min = score
}
sum += score
}
return (min, max, sum)
}
let statistics = calculateStatistics(scores: [5,3,100,3,9]}
print(statistics.sum)
print(statistics.2)
2.
3.
Указываем ярлыки аргументов и их отсутствие.
Значения по умолчанию для параметров.
Выводы урока: разобрались с функциями и узнали, как они используются.
Download