
1. forEach
- forEach문은 JavaScript에서 자주 사용했던 방법인데, Swift에서도 사용할 수 있는걸 오늘에서야 알게 되었다.
for element in array {
doSomething(with: element)
}
array.forEach { doSomething(with: $0) }
2. map, compactMap, filter, ... 의 keyPaths
- KeyPaths는 간단하며, 메서드들에 체이닝을 걸 수 있는 장점도 있다.
let filteredArray = array.filter { $0.isActive }
let titles = filteredArray.map { $0.title }
let filteredArray = array.filter(\.isActive)
let titles = filteredArray.map(\.title)
let titles = array
.filter(\.isActive)
.map(\.title)
3. defer
- defer 블럭 코드는 return이 실행된 후 호출된다.
func pop() -> Value? {
defer {
head = head?.next
}
return head?.value
}
func loadSomething(completion: () -> Void) {
defer {
isLoading = false
completion()
}
isLoading = true
guard someCondition else {
return
}
doSomething()
}