swift

swift - Iterating Collections(for-in, foreach)

행복하게사는게꿈 2021. 1. 7. 15:01

Iterating Collections

Collection을 열거한다 -> Collection에 저장된 모든 요소를 대상으로 반복처리 한다.

 


for-in

// Collection을 열거한다 -> Collection에 저장된 모든 요소를 대상으로 반복처리 한다.
// 배열, 딕셔너리, 셋 열거해보자

// 1. for in
print("Array,", "===============")
let arr = [1, 2, 3]
for num in arr {
    // 1, 2, 3이 loop 상수인 num으로 순서대로 전달됨
    print(num)
}

print("Set", "===========")
let set:Set = [1, 2, 3]
for num in set {
    print(num)
}

print("Dictionary" ,"-===========")
let dict = ["A": "1", "B": "2", "C": "3"]
for num in dict {
    print(num.key)
    print(num.value)
}

for (key, value) in dict {
    print("\(key) + \(value)")
}

forEach

print("Array", "=========")
let arr = [1, 2, 3]
arr.forEach { (num) in
    print(num)
}

print("Set", "==========")
let set:Set = [1, 2, 3]
arr.forEach { (num) in
    print(num)
}

print("Dictionary", "============")
let dict = ["A": 1, "B": 2, "C": 3]
dict.forEach { (elem) in
    print(elem.key, elem.value)
}

차이점

// 두가지 함수를 이용해 열거

// 1. 배열을 열거
func withForIn() {
    print(#function)
    let arr = [1, 2, 3]
    for num in arr {
        // break
        // coutinue
        print(num)
        return
    }
}

func withForeach() {
    print(#function)
    let arr = [1, 2, 3]
    arr.forEach { (num) in
        
        // break, continue 사용불가 -> 반복문이 아니기 때문에
        print(num)
        return
    }
}



withForIn() // return한 경우 함수 전체가 종료
withForeach() // return한 경우 현재 실행중인 클로저 하나만 종료 (반복횟수에는 영향을 주지 않는다.)