【Swift】Optional인 요소를 가지는 Array를 루프로 unwrap 해 사용
소개
다음과 같은 Optional으로 싸인 요소를 가진 Array가 있다고 가정합니다.
이 Array에 대해서, 루프내에서 nil이 아닌 요소를 unwrap 해 처리를 실행하는 상황을 생각합니다.
let items: [Int?] = [1, 3, nil, 6, 10, nil, nil, 8]
이런 처리를 쓰는 방법을 처음 알게 된 방법도 있었기 때문에 4 종류 정도 소개해 보겠습니다.
네 가지 유형 모두 처리 결과는 동일합니다.
실행된 Swift 버전
쓰기
▼ 간단한 루프
반복하면서 guard에서 nil을 연주해보십시오.
for i in items {
guard let item = i else {
continue
}
print(item)
}
// ↓出力結果
// 1
// 3
// 6
// 10
// 8
▼ Enumeration Case Pattern
Enumeration Case Pattern으로 패턴 매칭
for case .some(let item) in items {
print(item)
}
// ↓出力結果
// 1
// 3
// 6
// 10
// 8
▼ Optional Pattern
Optional Pattern으로 패턴 매칭
for case let item? in items {
print(item)
}
// ↓出力結果
// 1
// 3
// 6
// 10
// 8
▼ Functional
함수형으로 작성해 보겠습니다.
items.compactMap({ $0 }).forEach({ print($0) })
// ↓出力結果
// 1
// 3
// 6
// 10
// 8
결론
분명 그 밖에도 여러가지 쓰는 방법을 할 수 있겠지~라고 생각합니다.
실수가 있으시면 지적하십시오
참고
Reference
이 문제에 관하여(【Swift】Optional인 요소를 가지는 Array를 루프로 unwrap 해 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taji-taji/items/2f851bfdb5209f40e760텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)