[swift] List comprehension

ohtt-iOS·2020년 12월 2일
1

SWIFT

목록 보기
1/1
post-thumbnail

List comprehension

개린이가 쓴 글이므로 오류가 있을 수 있음을 미리 알려드립니다 🐹 (꾸벅)



파이썬 list comprehension을 보고
swift에도 있겠지? 하고 찾아보고 정리해둡니다 :)


고차함수 사용

// Python: [ x for x in range(10) if x % 2 == 0 ]
let evens = (0..<10).filter { $0 % 2 == 0 }
// Python: [ x*x for x in range(10) if x % 2 == 0 ]
let evenSquared = (0..<10).filter({ $0 % 2 == 0 }).map({ $0 * $0 })


출력

[0, 2, 4, 6, 8]
[0, 4, 16, 36, 64]

같은 출력이지만 lazy 연산 프로퍼티를 붙여주면 메모리 관리에 도움이 됩니다 :)
// Python: [ x for x in range(10) if x % 2 == 0 ]
let evens = (0..<10).lazy.filter { $0 % 2 == 0 }
// Python: [ x*x for x in range(10) if x % 2 == 0 ]
let evenSquared = (0..<10).lazy.filter({ $0 % 2 == 0 }).map({ $0 * $0 })


stride 사용


let evenStride = stride(from: 0,to: 10, by: 2)
let evenevne = Array(evenStride)
print(evenevne)

이런식으로 stride 함수를 사용해서 같은 출력을 보일 수도 있습니다.
stride는 전진하다, 보폭 이런 뜻을 가지고 있습니다.

stride(from:a, to: b, by:c)

이런식으로 사용할 수 있는데
a부터 b까지 c의 간격으로 내보내!!! 라는 뜻 입니다.



참고 링크

profile
오뜨 삽질 🔨 블로그

0개의 댓글