Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 프로그래머스 배열 만들기1
- Break
- 주사위 게임1
- cocoapods 설치 오류
- 조건에 맞게 수열 변경하기 3
- 프로그래머스
- Error installing cocoapods
- 스페인어
- 연산자
- 배열 만들기1
- swift
- 객체지향
- 프로그래머스 문자열 붙여서 출력하기
- 프로그래머스 문자열 정렬하기 (1)
- array
- Til
- 프로그래머스 자동커밋
- 프로그래머스 암호 해독
- 프로그래머스 주사위 게임1
- 프로그래머스 n의 배수 고르기
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 문자열 붙여서 출력하기
- 프로그래머스 최댓값 만들기(2)
- ruby설치
- continue
- 스파르타코딩캠프
- 프로그래머스 n번째 원소까지
- 문자열 정렬하기 (1)
- 스파르타 코딩클럽 내일배움캠프
- n번째 원소까지
Archives
- Today
- Total
dev._.note
[Swift] zip 함수 본문
👏 zip(_:_:)
공식문서 정의 : Creates a sequence of pairs built out of two underlying sequences.
두 개의 기본 시퀀스로 만들어진 시퀀스 쌍을 만듭니다.
알고리즘을 풀다가 두 배열의 값을 더해서 다시 배열로 만드는 문제를 풀던 도중
한번에 여러개의 배열을 사용할 수 있는 zip 함수를 알 게 되어서 정리해 보았습니다.
아래는 공식문서의 zip함수 사용법입니다.
func zip<P, Q>(
_ publisher1: P,
_ publisher2: Q
) -> Publishers.Zip3<Self, P, Q> where P : Publisher, Q : Publisher, Self.Failure == P.Failure, P.Failure == Q.Failure
let numbersPub = PassthroughSubject<Int, Never>()
let lettersPub = PassthroughSubject<String, Never>()
let emojiPub = PassthroughSubject<String, Never>()
cancellable = numbersPub
.zip(lettersPub, emojiPub)
.sink { print("\($0)") }
numbersPub.send(1) // numbersPub: 1 lettersPub: emojiPub: zip output: <none>
numbersPub.send(2) // numbersPub: 1,2 lettersPub: emojiPub: zip output: <none>
numbersPub.send(3) // numbersPub: 1,2,3 lettersPub: emojiPub: zip output: <none>
lettersPub.send("A") // numbersPub: 1,2,3 lettersPub: "A" emojiPub: zip output: <none>
emojiPub.send("😀") // numbersPub: 2,3 lettersPub: "A" emojiPub: "😀" zip output: (1, "A", "😀")
lettersPub.send("B") // numbersPub: 2,3 lettersPub: "B" emojiPub: zip output: <none>
emojiPub.send("🥰") // numbersPub: 3 lettersPub: emojiPub: zip output: (2, "B", "🥰")
// Prints:
// (1, "A", "😀")
// (2, "B", "🥰")
Apple 공식문서
https://developer.apple.com/documentation/swift/zip(_:_:)
zip(_:_:) | Apple Developer Documentation
Creates a sequence of pairs built out of two underlying sequences.
developer.apple.com
직접 사용해본 예시
let arr = ["one", "two", "three", "four"]
let number = 1...4
for (arr, number) in zip(arr, number) {
print("\(arr) : \(number)")
}
// "one : 1"
// "two : 2
// "three : 3"
// "four : 4"
let numbers = 1...Int.max
let dum = Array(zip(arr, numbers))
// dum = [("one", 1), ("two", 2), ("three", 3), ("four", 4)]
'Dev > SWIFT' 카테고리의 다른 글
[Swift] init(repeating:count:) (0) | 2023.10.27 |
---|---|
[Swift] enumerated() 배열의 인덱스 가져오기 (0) | 2023.10.26 |
[Swift] reverse() 와 reversed()의 차이점 (1) | 2023.10.25 |
[Swift] Int형 정수 (0) | 2023.10.25 |
[Swift] Array(배열) 기초문법 (0) | 2023.10.25 |