Tag: week3step2feedback
- 공유되어야하는 값들(참조)이 있다면 주저하지 않고 class를 택함.
- 특히 타입 안에 또다른 타입의 instance가 들어가야 하는 경우에는 더더욱.
- struct는 struct 자체로만 쓰이는 경우에 주로 사용.
- struct 내부에 class와 같은 참조 자료형이 있으면 성능적으로 좋지 못하다.
- struct안에 레퍼런스가 있는 경우, 레퍼런스 수에 비례하여 레퍼런스 카운팅 오버헤드를 지불하게되고 둘 이상의 레퍼런스가 있는 경우 class보다 레퍼런스 카운팅 오버헤드가 더 많이 유지되기 때문에.
최근에서야 공식문서에서 애플은 struct를 좋아한다라는 것만 보고 최대한 struct를 사용하고자 했었고, 프로젝트를 진행할 때 유명한 아키텍쳐들의 예제를 보면 보통 Model과 관련된 부분만 struct를 쓰고 대부분의 요소들에는 class를 사용하는것과 실제로 나도 주로 class위주로 사용했던것에 의문이 있었는데 아직 완벽하게는 아니지만 해당 의문에대한 어느정도의 밑그림은 그려지는 것 같다. 왜라는 질문을 왜 계속 던져야되는건지 이제 좀 알 것 같다. 의문이 생기면 대충 생각만 하지말고 무조건 왜라는 질문에 대답할 수 있을 때 까지 깊게 파고드는 습관을 만들어야겠다.
- guard
- Early Exit!
- if 코드보다 훨씬 간결하고 읽기 좋게 구성 가능
- 예외사항만을 처리하는 경우에는 guard구문이 훨씬 간편
- 해당 상수를 메서드 내에 지역 상수처럼 자유롭게 사용이 가능
- return,break,continue,throw등의 제어문 전환 명령어를 쓸 수 없는 상황이라면 사용 불가
- if
- if let으로 옵셔널 바인딩 된 상수는 해당 scope 안에서만 사용 가능