티스토리 뷰
for을 쓸까 foreach를 쓸까는 항상 고민되는 이슈이다.
주변에 좀 물어봤는데 for이 속도가 더 빠르고, 중간에 break도 되고, 아무튼(?) 더 좋았다. forEach는 클로저를 넣을 수 있는게 장점인 것 같다.
====
고차함수들을 잘 써야 좋은 프로그래머라고 생각한다. 특히 함수형을 잘 살려야 좋은 swift 개발자라고 나는 생각한다.
나는 그동안은 filter라는 함수에 관심이 별로 없었다. 쓸일이 없었다.
근데, 이런 함수를 만들려고 하는데...!!!!
이 함수는 리스트 안에, isSelected된 버튼이 있으면, 그 버튼을 리턴해주는 함수이다.
내 의도와는 달리, forEach 안에서 리턴 되어버리는 원하지 않는 결과가 탄생했다... 클로저라서,,,,
이럴때 쓰는게 filter이다.
return daysArray.filter({ $0.isSelected}).first ?? UIButton()
내가 forEach를 돌게 하지 않고, filter가 daysArray를 돌면서 filter 기준으로 isSelected된 것만 거른 '새로운 배열'을 돌려준다. 나온 새로운 배열에서 첫번째 인자를 이용하는게 저 한줄짜리 코드이다.
====
+) iOS Developers KR 단톡에서 물어보니, functional programming을 하고 싶으면 forEach보다는 map이나 flatmap을 쓰는게 더 좋다고 말했다.
'macOS, iOS' 카테고리의 다른 글
[iOS] collection view 스크롤 가능하게 하기 (0) | 2019.10.17 |
---|---|
[iOS] Assets.xcassets에 있는 color에 접근 하는 법 (0) | 2019.10.17 |
[Swift] {}() (0) | 2019.10.17 |
[iOS] viewWillAppear가 왜 동작을 안할까 (iOS13) (0) | 2019.10.16 |
[Swift] null과 nil의 차이? (0) | 2019.10.01 |