class Age() {
var age: Int = 4
var isYoung get() = age < 30
}
var age: Int = 4
var isYoung get() = age < 30
}
여기서 isYoung 부분 초기화 안됐다고 에러 띄우던데 이유가 뭔가요?
val로하면 괜찮구요.
값 변경할 수 있고 아니고 차이아닌가요?
여기서 isYoung 부분 초기화 안됐다고 에러 띄우던데 이유가 뭔가요?
val로하면 괜찮구요.
값 변경할 수 있고 아니고 차이아닌가요?
getter 떼라 - dc App
아니 그.. 궁금해서 그런거.. var은 안되고 val은 왜 되는지..
isYoung 은 age 값에 따라 정해지니까 상수지 isYoung 값을 님이 바꿀수가 없자나 age값에 따라 강제적으로 값이 정해지는건데 - dc App
age가 5인데 님이 뒷줄에서 isYoung = false 선언 될거같음?? isYoung 값자체가 age랑 30을 비교해서 지 알아서 가져오는건데 ㄱㄷ래서 val로 두는거임 - dc App
흠 그러니까 isYoung은 age에 따라 값이 정해져야하는데 var로 두면 내가 변경시킬수도 있어서 그렇다? 이런거임요?
ㅇㅇ 쉽게 그렇게 생각해 kotlin에서 getter setter 자동생성 하는 부분에서 그렇게 되는데 초기값 선언하면 쓸수는 있음 근데 값 바꿔도 적용안돼 - dc App
var isYoung= false 하고 아래에 게터 두면 써지긴함 근데 값바꿔도 안먹힘 getter때문에 getter 읽기 전용이라고 생각해 - dc App
개어렵넹.. 스택오버 플로우 뒤져보고하는데 잘이해가 가지않음...
평가식개념이 없노
뭔데요 그게
val isYoung get() 이 get syntax인 함수로 컴파일되고, var은 stored property로 컴파일되니까 - dc App
무슨서린지...