stride 제네릭 함수
작성일
stride 제네릭 함수
// stride를 통해 범위안에 반복 처리가 가능하다.
// from 시작, to 끝, by 만큼
for countdown in stride(from: 4, to: 0, by: -1) {
print("\(countdown)")
}
// 4...
// 3...
// 2...
// 1...
// 배열 익스텐션
extension Array {
// 배열을 쪼개는 메소드
func chunks(_ chunkSize: Int) -> [[Element]] {
// stride를 통해 범위는 0에서 배열의 총 갯수
// 나누는 크기 만큼
return stride(from: 0, to: self.count, by: chunkSize).map {
// 나누는 크기 만큼의 배열 생성
Array(self[$0..<Swift.min($0 + chunkSize, self.count)])
}
}
}
let numbers = Array(1...10)
let result = numbers.chunks(3)
print(result)
출력
4
3
2
1
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]