작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
24.04.02 15:30 작성
·
257
·
수정됨
답변 1
0
2024. 04. 02. 16:13
안녕하세요, 이훈님.
질문하신 내용 모두 확인했습니다.
getter와 assign의 차이가 아직 정립이 안되신 상황이네요. 강의 내용을 다시 복습해주시면 아래 제 질문에 답변하는데 도움이 될 것입니다. 관련 강의 내용은 [개념] 6. 클래스 (1) 선언 방법
6분~ 부터 다시 확인해주시면 좋겠습니다. 이해를 돕기 위해 질문을 드리겠습니다.
이 코드를 1번으로 지칭하고,
override var stepCount: Int
get() = 0
set(value) {}
아래 코드를 2번으로 지칭하여 질문드리겠습니다.
override var stepCount: Int=5
1번, 2번은 같은 동작을 하는 코드가 아닙니다.
제 질문은 두 가지 입니다.
둘 중 getter를 구현한 코드와 assign을 구현한 코드를 구별해주세요.
그리고 두 코드가 어떻게 다른가요?
그리고 앞으로는 위 질문처럼 강의 내용을 모두 첨부해야하는 경우에는 디스코드 채널에서 질문해주세요. Q&A는 공개 링크로 내용을 모두 확인할 수 있으니까요.
확인 후 답변부탁드립니다 😀
2024. 04. 03. 11:39
질문에 답변하면서 문제 해결을 잘 하신 것으로 보입니다 👍
getter로 구현하셨던 예제 코드는 호출될 때마다 항상 0을 반환한 것이고, 변수에 값을 할당(assign)한 코드는 5로 초기화가 되고 이후 연산을 수행했던 것이죠.
문제 해결이 잘 되신 거죠? 복습도 잘 하셨습니다 👍
2024. 04. 03. 11:09
질문을 삭제하여도 질문글이 남는다고 하여, 본문내용을 삭제하였습니다.
추가 학습을 통해 아래와 같이 이해하였습니다.
getter
getter를 구현한 코드이다.
변수가 참조될 때에 (
&stepCount
)get()의 오른쪽을 반환한다.
(코틀린에서 클래스의 변수를 참조할 때 자바의
getStepCount()
와 비슷한 동작이기 때문 )assign
변수에 값을 직접 할당하는 코드이다.
stepCount 자체에 5가 들어간다.
앞으로는 질문글 작성에 유의하겠습니다. 좋은 하루 되세요!