티스토리 뷰

Tech/Swift

스위프트 zip 사용하기

Ellie Kim 2019. 1. 2. 17:42


알고리즘 문제를 풀다가 String 과 Int를 결합할 일이 생겨서 zip을 사용해서 문제를 풀었습니다.


항상 같은 사이즈를 가지고 zip 했었는데 사이즈가 다른 것을 zip하면 어떻게 되는지 궁금했습니다.


스위프트 공식 문서를 보면 zip은


Creates a sequence of pairs built out of two underlying sequences.







두 개의 시퀀스로 구성된 것을 가지고 시퀀스쌍을 만듭니다. 


라고 정의 내려져 있습니다.


func zip<Sequence1, Sequence2>(_ sequence1: Sequence1, _ sequence2: Sequence2) -> Zip2Sequence<Sequence1, Sequence2> where Sequence1 : Sequence, Sequence2 : Sequence


먼저 두 개의 파라미터가 필요합니다. 


sequnce1 - > zip할 첫 번째 시퀀스 혹은 컬렉션


sequnce2 -> zip할 두 번째 시퀀스 혹은 컬렉션


리턴하는 값은 튜플쌍들의 시퀀스를 리턴합니다. (각 쌍의 요소는 sequnce1 , sequnce2의 요소입니다,)

 


sequence1은 [String]으로 문자열 배열을 


sequence2는 [Int]로 정수 배열을 선언한 후 


두 개를 zip한 리턴 값을 가지고 for문을 돌려서 사용했습니다. (sequenceZip는 Zip2Sequence<[String],[Int]>)


첫 번째 for문의 i는 (String, Int) 튜플으로 사용 가능합니다.


두 번째 for문의 i는 String타입 , j는 Int타입으로 사용 가능합니다.



결과는 두개를 조합해서 잘 나오네요.


궁금했던 부분은 ! sequence1의 개수가 하나 줄여 사이즈가 다를 경우는 어떻게 실행되는지 살펴보았습니다.



sequence1의 사이즈는 3 sequence2의 사이즈는 4 



에러도 내지 않고 ! 결과는 짧은쪽에 맞춰서 결과가 출력되었습니다.


알고보니 애플 공식 문서 아래쪽에 잘 살펴보면 있는 내용...




결론 길이가 다를경우 결과는 짧은 쪽의 시퀀스에 맞춰서 ...ㅎ 나옵니다.



공식 문서를 잘 보자 !

'Tech > Swift' 카테고리의 다른 글

Swift functions abs,assert,assertionFailure  (0) 2019.03.07
Swift - Array shuffle()  (2) 2019.02.13
스위프트 removeAll과 filter비교  (0) 2019.01.10
스위프트 map , forEach  (0) 2018.12.22
스위프트 오버로드 오버라이딩  (0) 2018.12.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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
글 보관함