본문 바로가기
🌱

forEach와 for_in 차이

by 방우 2022. 8. 17.

Calls the given closure on each element in the sequence in the same order as a for-in loop.

for문과 동일한 순서로 컨테이너의 각 요소에 대해 주어진 클로저를 호출합니다.

선언 (Declaration)

func forEach(_ body: (Element) throws -> Void) rethrows

매개변수(Parameters)

body

  • body는 컨터에너의 요소를 매개변수로 사용하는 클로저

 


 

forin과의 차이점

  1. for문으로는 몇 번 출력할 지 제어할 수 있지만 forEach는 컨테이너의 각 요소를 클로저에 던져 이용하기 때문에 요소의 수 만큼만 가능
  2. break - continue은 반복문에서만 사용가능하기 때문에(왜냐면 forin은 루프를 도는거니까) ForEach는 사용할 수 없음
    1. break와 continue는 반복문 혹은 switch에서만 사용가능
  3. return도 forEach에서 사용할 수 없음 (forEach는 Void라서 return을 쓸 수 없음)

예시(Discussion)

// 배열 안의 요소가 여러개 일때

let numberWords = ["one", "two", "three"]

for word in numberWords {
    print(word)
}

numbers.forEach { word in
    print(word)
}
/*
 one
 two
 three
 */

// 배열안의 요소가 하나일 때

let numbers = [123]

for _ in 0...2 {
    print(numbers)
}
/*
 [123]
 [123]
 [123]
 */

numbers.forEach { numbers in
    print(numbers)
} // 123

'🌱' 카테고리의 다른 글

값전달 - 클로저 트러블 슈팅  (0) 2022.08.19
Equatable  (0) 2022.08.18
UIButtonConfiguration  (0) 2022.08.15
Dynamic Type  (0) 2022.08.15
뷰에 그림자주기  (0) 2022.08.14