작성
·
272
1
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
선생님의 이전 강의를 들을 때도 신기하면서도 의아하기도 했던 부분인데요
그냥 그런가보다 하고 넘어갔는데 보면 볼수록 궁금해서 여쭤보게 되었습니다
fun isReturn(): Boolean { this.status == LoanStatus.RETURNED }
이 코드랑 비교했을 때 val isReturn을 필드처럼 사용하는 게 어떤 부분에서 이점이 있는 것인지 궁금합니다.
별다른 이점이 없다면 오히려 팀원들이 익숙한 방향(함수 사용)으로 가는 게 맞는 것 같아서요!!
답변 1
1
안녕하세요, 으뀨뜌님!! 😊 항상 좋은 질문 남겨주셔서 감사드립니다!!
말씀해주신 것처럼 이 부분이 애매~한 부분이긴 합니다!! isReturn()
과 같은 함수로 만드나~ isReturn
과 같은 프로퍼티 형태로 만드나 기능적으로 동일한 뿐 아니라 결국 JVM 레벨에서는 함수로 간주되거든요!
fun isReturn(): Boolean = this.status == RETURNED
val isReturn: Boolean
get() = this.status == RETURNED
우선 결론부터 말씀드리면, 프로퍼티 형태(custom getter)를 사용한다고 해서 딱히 직접적인 이점이 있지는 않습니다. 굳이 따지면 해당 기능을 사용하는 입장에서
isReturn
뒤에 괄호를 붙이지 않아도 되서 타이핑이 매우 소폭 줄어들고
행동보다는 '속성' 같은 느낌을 줄 수 있다
정도 인 것 같아요!
따라서, "오히려 팀원들이 익숙한 방향(함수 사용)으로 가는 것" 역시 좋은 의견이라고 생각합니다! 👍
다만, 개인적으로는 행동과 속성을 구분하려 노력하다 보니, isReturn
과 같이 단편적인 기능은 함수 보다는 프로퍼티 형태가 익숙해지더라고요 ㅎㅎㅎ 그래서 후자의 방식을 선호하는 편입니다.
또 궁금한 점 있으시면 편하게 질문 남겨주세요! 감사합니다!! 🙏🙏