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과의 차이점
- for문으로는 몇 번 출력할 지 제어할 수 있지만 forEach는 컨테이너의 각 요소를 클로저에 던져 이용하기 때문에 요소의 수 만큼만 가능
- break - continue은 반복문에서만 사용가능하기 때문에(왜냐면 forin은 루프를 도는거니까) ForEach는 사용할 수 없음
- break와 continue는 반복문 혹은 switch에서만 사용가능
- 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 |