Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

leeyang의 개발 성장기

[Swift] for문 탐색을 거꾸로하기 본문

Swift

[Swift] for문 탐색을 거꾸로하기

leeyang 2019. 9. 1. 18:53

안녕하세요. 리양입니다 :)

요새 알고리즘을 공부하니 for문과 while문에 집중하게 되고 있네요.

C언어를 공부해본 사람이라면 for(i = 0; i < n; i++) 식에 익숙하실텐데요 :)

swift5에서 작성해봅시다.

ㅠ ㅠ C 스타일이라고 swift3에서 삭제 되었습니다!

그래서 swift에서는 for문을 사용하기 위해 for i in 0...n 식을 사용하고 있죠.

그럼 감소하는 for문은 어떻게 사용할까요?

 

1. reversed() 사용

reversed()

Returns a view presenting the elements of the collection in reverse order.

 

Declaration

func reversed() -> ReversedCollection<Array<Element>>


애플 document에 나와있는 내용인데요, reverse의 뜻처럼 담겨져 있는 데이터를 역순으로 보여준다는 것입니다.

다만 이 메소드는 collection 타입인 array의 인스턴스 메소드임으로, 순수 범위인 int타입에서는 적용이 어렵습니다 :)

 

2. stride() 사용

stride(from:to:by:)

Returns a sequence from a starting value to, but not including, an end value,

stepping by the specified amount.

 

Declaration

func stride<T>(from start: T, to end: T, by stride: T.Stride) -> StrideTo<T> where T : Strideable


Generic function이기에 어떤 타입이든 사용이 가능합니다. 다만 Strideable 타입에 속한 어떤 타입이죠.

Strideable은 연속적인 수를 나타낼 수 있는 프로토콜입니다. 그래서 Int, date 타입 등을 나타냅니다.

즉! stride를 이용해서 range를 표시 하면됩니다.

주의) to vs through의 차이

to는 해당 수를 포함하지 않고, through는 포함합니다.

즉 >와 ...의 차이라 생각하시면 됩니다.

to일때 i의 출력 값

 

through일 때 i의 출력값

 

잘못된 정보나 부족한 부분은 피드백 받고 있습니다 :)


참고한 글

Swift3 -) for문(for loop) / for문과 stride 같이쓰기

[Swift] 감소되는 for 루프

'Swift' 카테고리의 다른 글

[Swift] ExpandableCell 만들기  (0) 2019.09.15
[Swift] TableViewCell identifier에 관하여  (0) 2019.09.09
[Swift] 열거형 - enum 기본편  (0) 2019.09.03
Comments