[개발일기] 22-06-20

오늘·2022년 6월 20일
0

[개발일기]

목록 보기
58/199

📝 간단하게 쓰는 개발일기

함수형 코틀린

6장에서 lazy, Delegates.observable, Delegates.vetoable을 공부했다.

정리

  • lazy 델리게이트는 var 프로퍼티에 쓰이는 Delegates.notNull이나 lateinit과 달리 val 속성에 쓰인다.
  • lazy 델리게이트는 Delegates.notNull이나 lateinit과 달리 프로퍼티를 초기화할 방법을 나타내는 람다를 사용한다. 이때 이 람다는 속성에 할당될 값을 반환할 것을 요구한다.
  • lazy 델리게이트는 프로퍼티가 사용되는 시점에 람다가 반환한 값으로 초기화된다.
  • Delegates.observable은 프로퍼티의 값이 변경될 때마다 작업이 필요할 때 사용한다.(Observer Pattern)
  • Delegates.observable은 첫 번째 인자로 프로퍼티의 초기 값, 두 번째 인자로 값이 변경될 때 호출할 람다를 받는다.
  • Delegates.observable의 람다는 세 개의 인자를 가지는데, 첫째는 KProperty<out R>의 인스턴스, 둘째는 값이 변경되기 직전의 이전 값, 셋째는 변경된 값이다.
  • Delegates.vetoableDelegates.observable과 유사하다. 다만 Delegates.vetoable은 인자로 받는 람다가 Boolean 값을 반환할 것을 요구한다.
  • Delegates.vetoable은 람다가 반환한 값이 참일 경우에만 새로운 값을 할당한다. 즉, Delegates.vetoable이 사용된 프로퍼티의 값의 변경이 시도될 경우, 람다의 값이 참인지를 확인한 후 참일 경우에만 값의 갱신이 일어난다.
  • 참고 : veto의 뜻

CS 스터디

cs 스터디를 시작했다. 책은 면접을 위한 CS 전공지식 노트를 사용한다. 오늘은 디자인 패턴의 앞 부분을 공부했다.

profile
Junior Mobile 개발자

0개의 댓글