Swift/기초문법
[Swift 기초문법 - 54] stride
힛해
2024. 8. 19. 22:36
728x90
stride란?
범위안에서 반복하는 것
stride to
from에서 to가 되기 전까지!
// 범위안에서 반복처리
for countdown in stride(from: 5, to: 0, by: -1){
print("카운트 다운 ", countdown)
}
결과
카운트 다운 5
카운트 다운 4
카운트 다운 3
카운트 다운 2
카운트 다운 1
to가 0이기에 0이전인 1까지만 반복된다.
stride through
from에서 through까지!
for countdown in stride(from: 5, through: 0, by: -1){
print("카운트 다운 ", countdown)
}
실행결과
카운트 다운 5
카운트 다운 4
카운트 다운 3
카운트 다운 2
카운트 다운 1
카운트 다운 0
stride를 활용해서 1차원 배열을 2차원 배열로 만들어보자
extension Array {
func chunks(_ chunkSize: Int) -> [[Element]] {
return stride(from: 0, to: self.count, by: chunkSize).map{
return Array(self[$0..<Swift.min($0 + chunkSize, self.count)])
// 자리가 부족한 건 자신의 수만큼 배열의 크기로 정한다.
}
}
}
let numbers = Array(1...10)
let chunkedArray = numbers.chunks(2)
실행결과
2개씩 나누어져서 만들어진 것을 볼 수 있다.
정리하자면
stride를 활용하면 여러가지 함수를 만들어낼 수 있을 것 같다