Массив numbers
объявлен в строке 12 предыдущего блока кода. Каждый блок кода, показанный в этой главе, основан на предыдущем. Вы можете скачать код для игровой площадки
Функциональный кодовый блок будет:
var numbers = [20, 19, 7, 12]
numbers.map({ (number: Int) -> Int in
let result = 3 * number
return result
})
Затворы более подробно описаны в их собственной главе , но вкратце:
Замыкания - это автономные блоки функциональности, которые можно передавать и использовать в вашем коде. Замыкания в Swift похожи на блоки в C и Objective-C и на лямбды в других языках программирования.
В случае функции map
код в замыкании действует поочередно на каждый элемент массива. Он принимает элемент массива в качестве входных данных и возвращает элемент для выходного массива.
Вы можете вернуть 0 для нечетных чисел, используя функцию по модулю
let evens = numbers.map({ (number: Int) -> Int in
if number % 2 == 0 {
return number
} else {
return 0
}
})