반응형
코틀린은 같은 변수를 계속 만들면 재활용할까?
- 함수를 호출할 때 마다 변수를 생성하는 함수를 생성한다
- 함수를 계속 호출하면서 생성되는 변수의 메모리 주소 값을 확인한다
- 주소값을 통해 같은 변수를 만들 때 재활용하는지 새롭게 주소를 할당하는지 확인한다
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
테스트용 코드 작성
기본적으로 코틀린은 C와 같이 포인터가 없기 때문에
변수가 저장된 주소값을 얻을 수 없습니다....
하지만, 컬렉션의 경우에는 주소값을 출력할 수 있기 때문에
아래의 예시와 같이 버튼을 클릭할 때마다 변수(리스트)를 생성하도록 한다
binding.freeButton.setOnSingleClickListener {
val testValue = listOf(0, 1, 2)
Timber.d("clicked time: ${Calendar.getInstance()}")
}
테스트 및 디버깅으로 변수 주소 확인
디버깅을 해서 결과를 보면
- 첫 번째 호출 결과
- 두 번째 호출 결과
- 세 번째 호출 결과
함수가 있는 버튼을 클릭할 때 마다 메모리에 새로운 공간을 할당해서 넣는 것을 알 수 있다.
그렇기 때문에 버튼을 여러 번 클릭하는 경우에는 매 번 변수를 함수 안에서 정의해서
호출할 필요가 있는지 확인할 필요가 있다.
반응형
'코틀린' 카테고리의 다른 글
안드로이트 코틀린 Reflection(리플렉션) 기초 정의 (0) | 2023.03.09 |
---|---|
코틀린에서 자주 사용하는 어노테이션(Annotation)@ 정리-1 (0) | 2023.03.06 |
코틀린에서 변성(variance)이란 무엇인가 - 상세 설명 (0) | 2023.02.18 |
코틀린 확장함수 Scope함수 apply, with, let, also, run 이란? (0) | 2023.01.16 |
코틀린 inline 클래스 와 함수의 정의 및 사용하는 이유, 경우 (0) | 2023.01.07 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글