Simple code methods for writing closures that don’t have a name in Swift
1 min readMar 2, 2024
I thought about closures without names to get odd numbers. There are four simple code methods. Let’s make it progressively simpler.
1st
It’s a complicated but basic way of writing.
var numbers = [22, 21, 9, 14]
let response1 = numbers.compactMap({(number: Int) -> Int? in
if (number % 2) != 0 {
return number
}
else {
return nil
}
})
2nd
Use number instead of (number: Int) -> Int?.
var numbers = [22, 21, 9, 14]
let response2 = numbers.compactMap({number in
if (number % 2) != 0 {
return number
}
else {
return nil
}
})
3rd
Remove number and use $0 instead of number.
var numbers = [22, 21, 9, 14]
let response3 = numbers.compactMap({
if ($0 % 2) != 0 {
return $0
}
else {
return nil
}
})
4th
It’s the simplest way. remove ().
var numbers = [22, 21, 9, 14]
let response4 = numbers.compactMap {
if ($0 % 2) != 0 {
return $0
}
else {
return nil
}
}