안녕하세요 Hani입니다. 이번에는 map, compactMap, flatMap의 차이에 대하여 알아볼 거예요. ☺️ map map은 sequence의 모든 원소에 대한 변환 작업을 통해 새로운 Array을 만들어줍니다. let cast = ["Vivien", "Marlon", "Kim", "Karl"] let lowercaseNames = cast.map { $0.lowercased() } // 'lowercaseNames' == ["vivien", "marlon", "kim", "karl"] let letterCounts = cast.map { $0.count } // 'letterCounts' == [6, 6, 3, 4] compactMap compactMap은 sequence의 모든 원소에 대한 ..
https://programmers.co.kr/learn/courses/30/lessons/17676
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mPIg9/btrdopORw36/M3vmIBkOgF0XgP7POqfHrk/img.png)
안녕하세요 Hani입니다. ☺️ 이번에는 allCases와 AllCases의 차이에 대하여 알아보겠습니다. 저는 CaseIterable 프로토콜은 보통 타입 안에 있는 case들에 접근하기 위해 사용해왔어요.🥺 allCases만 썼는데 AllCases도 궁금해져서 프로토콜을 뜯어보려고 합니다. AllCases는 associatedtype키워드 덕분에 특정 타입으로 제한되어 있지 않습니다. 또한, AllCases는 Collection 프로토콜을 순응하는 타입만 받고 있네요. 간단히 말하면 Collection 프로토콜을 채택한 타입은 배열처럼 쓸 수 있습니다. 따라서 AllCases는 채택한 곳의 모든 case들을 element로 가질 수 있는 배열같은 타입이라고 할 수 있어요. AllCases는 모든 ca..
안녕하세요 Hani입니다. 이번에는 Collection 프로토콜에 대하여 알아볼 거예요. 🥰 먼저, Collection을 알기 위해 먼저 조사해야 할 것들이 있습니다. IteratorProtocol 프로토콜부터 보시져 🧐 public protocol IteratorProtocol { associatedtype Element public mutating func next() -> Self.Element? } IteratorProtocol 프로토콜을 채택한 타입은 구현한 next메서드를 통해 순차적으로 순회하는 Iterator가 됩니다. 뭐를 순회 하냐면.. public protocol Sequence { associatedtype Element where Self.Element == Self.Iterato..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/QYXbI/btrcB3SPQ9y/Dy5steiPsv3ZmGx5QE7cTk/img.jpg)
안녕하세요 Hani입니다. 합격했어요. 🥰 챌린지 한 달 동안 일일과제말고 아무것도 할 수 없었어요. 진짜 챌린지.. 과제 마무리하면 맨날 새벽 세시에(그렇다고 다 끝낸 것도 아님.. ㅜㅜ) 매일 하던 운동도 못 하는 숨 막히는 하루하루.. 그래도 스트레스가 쌓이진 않았습니다. 힘들지만 재밌었고 결정적으로 합격 메일을 받았기 때문에 ☺️ 저번 주 금요일에 챌린지가 끝나고 멤버십 합격을 기다리는 시간 동안 똥줄이 얼마나 탔는지 🔥 이제 마음 편히 쉴 수 있다..!
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/O3ABY/btrb78UuWS0/Ks1KKNZJvm6kvK6nPADoY1/img.png)
안녕하세요 Hani입니다. 이번엔 lazy 키워드에 대하여 알아볼 거예요. 🥰 lazy는 무엇인고 lazy는 인스턴스를 생성하는 시점에 값을 부여하고 싶지 않은 변수에 대하여 붙여주는 키워드입니다. lazy라는 키워드가 붙으면 초기 값을 주지 않고, 첫 번째 호출 때 초기화를 해주겠다는 의미이기 때문에 변수만 가능해요. let으로 선언하면 나중에 값을 바꾸지 못하니까용. Q. 그럼 연산 프로퍼티 쓰면 되자나? 😡 연산 프로퍼티와 lazy로 선언된 프로퍼티(=지연 저장 프로퍼티)의 차이를 한 번 볼게요. 연산 프로퍼티는 호출될 때마다 새롭게 바뀐 값에 대하여 연산을 수행해주고 있습니다. 그러나 지연 저장 프로퍼티 첫 번째 호출 시점에 초기화가 된 이후, 다음부터는 새 값으로 갱신되지 않고 있어요. 지연 저..
- Total
- Today
- Yesterday
- WWDC17
- 벨만포드 알고리즘
- WWDC19
- 네트워크 플로우
- 벨만포드 시간복잡도
- 포드 풀커슨 알고리즘
- test coverage
- WWDC16
- observeOn
- 다익스트라 시간복잡도
- HIG
- 부스트캠프 6기
- 에드몬드 카프 알고리즘
- 강한 순환 참조
- 코딩대회
- CompositionalLayout
- Testable
- 최단경로문제
- IOS
- WWDC21
- 최대 매칭
- 최단경로 문제
- 네트워크 유량
- 컴퓨터 추상화
- CPU와 Memory
- rxswift
- MeTal
- mach-o
- 최단경로 알고리즘
- State Restoration
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |