안녕하세요.
이번에는 computed property와 method 중 어떤 방식으로 구현할지 선택하는 기준에 대해 정리해봤습니다.
# computed property? method?
Swift로 개발하다보면 computed property를 종종 사용하게 되는데요.
그런데 computed property로 구현할 수 있는건 method로도 구현할 수 있습니다.
예를 들어서 Length라는 구조체가 있다고 가정해볼게요.
miter는 몇 미터인지 나타내는 stored property 이고, inch는 miter 값을 기반으로 몇 인치인지 나타내는 computed property 입니다.
그런데 inch 프로퍼티는 아래처럼 method로도 구현할 수 있어요.
큰 차이가 없다면 뭘 쓰는게 좋지..? computed property를 쓰는게 유리한 상황은 뭐가 있지?
라는 의문이 들었고 관련해서 정리해봤습니다.
# 정리
computed property를 쓰면 좋은 상황
- 계산식이 복잡하지 않을 때 (복잡도가 크지 않을 때)
- 얻고자 하는 값이 property 성격에 좀 더 가까울 때
- extension 안에서 프로퍼티를 선언하고 싶을 때
method를 쓰면 좋은 상황
- 계산식이 복잡할 때 (복잡도가 클 때)
- 얻고자 하는 값이 method 성격에 좀 더 가까울 때
- 파라미터가 필요할 때
- error throw가 필요할 때
뭐 결국은 개인 스타일이 될 것 같지만 위 상황에 대해선 알고 있으면 언젠가 도움이 되겠죠...?ㅎㅎ
# 참고
- https://docs.swift.org/swift-book/LanguageGuide/Properties.html#ID259
- https://serialcoder.dev/text-tutorials/swift-tutorials/stored-and-computed-properties-in-swift/
- https://daheenallwhite.github.io/swift/2019/05/09/Computed-Property-vs-Method-What-To-Choose/
- https://www.swiftbysundell.com/tips/computed-properties-vs-methods/
- https://www.codingem.com/getters-and-setters-in-swift/
이번 글은 여기서 마무리.
'Swift' 카테고리의 다른 글
Result Builders (0) | 2023.04.02 |
---|---|
@dynamicMemberLookup (0) | 2023.03.06 |
mutating (1) | 2022.12.18 |
@autoclosure (2) | 2022.12.15 |
Optional에서의 map, flatMap (0) | 2022.09.04 |