티스토리 뷰

Mobile/Android

Kotlin. Backing Field

out of coding 2019. 5. 28. 10:59

swift와 마찬가지로 kotlin에서 get과 set을 이용할 수 있습니다.


만약 반응형 프로그램처럼 값이 변하면 어떠한 행동을 하도록 개발을 한다고 할 경우가 있을 겁니다.


다음과 같이 Person Class에 name과 age가 있습니다.

이것은 값이 변할 경우에 또다른 동작을 잠시하고 싶을 경우가 있으면 다음과 같이 정의 하는데요.


name은 문제가 없지만 age는 set을 하는 순간 에러가 발생하게 됩니다.


recursive call이 발생하게 됩니다.


이유는 당연합니다. 지금 만들어진 변수에 다시 값을 넣으려고 하니 지속적으로 age가 호출되기 때문입니다.


그래서 다른 동작을 하면서 원래의 변수에 값을 그대로 넣고 싶을 경우에는 backing field를 이용하면 아주 편합니다.


내부적으로는 _name과 _age가 존재하게 되어서 field에 값을 넣게 되면 자동으로 매핑하여 주게 되는 원리 입니다.


field만 기억하고 넣어줍시다.


iOS의 경우에는 didSet말고 willSet을 이용하면 이것과 동일한 효과를 얻을수 있습니다.


Backing field가 없더라도 값이 세팅되기전에 사용하고 변수의 값은 반영되기 때문이죠.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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 29 30 31
글 보관함