안드로이드 개발/개발팁
(가변)mutableList 타입으로 초기화 할때 반드시 val 변수에 담자
Aiden96
2024. 5. 28. 19:21
val numbers = listOf(1,2,3) 와 val numbers = mutableListOf(1,2,3) 에서 val 의 쓰임새가 완전히 다르다.
1) numbers 에 mutableListOf 객체생성을 하고 또 아래처럼 객체를 생성하거나
numbers = mutableListOf(5,7,23,44)
2) 다른 변수의 주소를 참조하게 하면 오류를 발생시킨다.
val murisu = mutableListOf(1,2,3)
numbers = murisu
즉 자바개념으로 설명하면 new로 생성후 다시 new 생성만 하지 않으면 된다.
그리고 참조주소를 변경하면 안된다.
아래처럼 같은주소안에 값을 수백번, 수천번 변경해도 상관없다.
아주 중요한 개념이다.
number[0] = 4
number[1] = 24
number[2] = 58
fun main() {
// val로 선언된 리스트 변수, 상자라고 생각해보자
val numbers = mutableListOf(1, 2, 3)
// 리스트 자체를 다른 리스트로 바꾸려면 안 돼
// numbers = mutableListOf(4, 5, 6) // 이건 안 돼! 오류가 발생해
// 리스트 안의 값은 바꿀 수 있어
numbers[0] = 4
numbers[1] = 5
numbers[2] = 6
// 리스트의 내용물을 출력해보자
println(numbers) // [4, 5, 6]
// 새로운 리스트를 만들어보자
val newNumbers = mutableListOf(7, 8, 9)
// 원래 리스트(numbers)를 새로운 리스트(newNumbers)로 바꾸려면 안 돼
// numbers = newNumbers // 이건 안 돼! 오류가 발생해
}