lazy var에 대해 알아보자

2022. 9. 6. 21:49swift

 

lazy는 무엇이지

lazy는 인스턴스를 생성하는 시점에 값을 부여하고 싶지 않은 변수에 대하여 붙여주는 키워드입니다.

lazy라는 키워드가 붙으면 초기 값을 주지 않고, 첫 번째 호출 때 초기화를 해주겠다는 의미이기 때문에 변수만 가능해요.

let으로 선언하면 나중에 값을 바꾸지 못하니까요

 

lazy는 초기 init시에 초기화되는 것이 아니라 호출될 때 생성이 되면서 메모리에 올라가며 이후 같은 변수를 사용 시 다시 초기화가 진행되지 않고 이전에 생성된 변수를 그대로 사용하더라고요.

또한 클래스나 구조체 내에서만 사용이 가능하다는 특징이 있었습니다.

   lazy를 사용하는 이유

- 지연 저장을 통해 메모리 낭비를 줄임

- 초기화 시점이 같을 때 접근할 수 있음

 

 

바로 메모리에 올리는 것이 아니라 사용할 때 메모리에 올리는 것이다.

개념 - 지금 당장 접근할 필요는없고 사용할 때 접근했을 때 메모리에 올라가게 된다.

 

윗 사진과 다르게 chupa 변수에 lazy를 추가해줬습니다.

출력하니 나타나지 않았습니다. 왜? 아직 chupa변수를 사용하지 않았기 때문입니다.

그래서이제 chupa에 접근을 하여 출력해보겠습니다.

아까와 다르게 루피가 나타났습니다.! 그렇치만 처음과 다르게 순서가 다르게 나타났습니다.

lazy var - chupa는 바로 메모리에 올라가는 것이 아니라 이 변수를 사용할 때 메모리에 올리기 때문에 먼저 나타 난다.