본문 바로가기

TIL

TIL 9일차

지연 초기화

 

lateinit

 

   1. Nullable로 선언하는 일반적인 방법

변수에 입력된 값의 메서드나 프로퍼티를 사용할 때 Safe Call(?.)이 남용되어 가독성을 떨어트리는 문제가 있다

 

   2. lateinit을 사용하는 방법

?가 제거되면서 가독성이 좋아진 것을 확인할 수 있다

 

   3. lateinit의 특징

 

     var로 선언된 클래스의 프로퍼티에만 사용할 수 있다.

 

     null은 허용되지 않는다.

 

     기본 자료형 Int, Long, Double, Float 등은 사용할 수 없다.

 

lazy

읽기 전용 변수인 val을 사용하는 지연 초기화

lateinit이 입력된 값을 변경할 수 있는 반면, lazy는 입력값을 변경할 수 없다

 

   1. lazy의 특징

 

     따로 초기화 할 필요가 없다.

 

     lazy로 선언된 변수가 최초 호출되는 시점에 by lazy{} 안에 넣은 값으로 초기화된다. 위의 코드에서 Company 클래스가      초기화 되더라도 person에 바로 Person()으로 초기화되지 않고, process 메서드에서 person.name이 호출되는 순간 초      기화된다.

 

    지연 초기화는 말 그대로 최초 호출되는 시점에 초기화 작업이 일어나기 때문에 초기화 하는 데 사용하는 리소스가 너        무 크면(메모리를 많이 쓰거나 코드가 복잡한 경우), 전체 처리 속도에 나쁜 영향을 미칠 수 있다. 따라서 복잡한 코드를      가지고 있는 클래스라면 미리 초기화 해놓고 사용하는 것이 효율적이다.

 
 
 

'TIL' 카테고리의 다른 글

TIL 11일차  (1) 2024.02.26
TIL 10일차  (0) 2024.02.23
TIL 8일차  (0) 2024.02.13
TIL 7일차  (0) 2024.01.24
TIL 6일차  (0) 2024.01.22