Simple code methods for writing closures that don’t have a name in Swift

keisuke ishikura
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
}
}

--

--

keisuke ishikura
keisuke ishikura

Written by keisuke ishikura

Mypace Co.,Ltd. CEO/ Mobile Engineer

No responses yet