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 // 이건 안 돼! 오류가 발생해
}'안드로이드 개발 > 개발팁' 카테고리의 다른 글
| 헷갈리는 토글 코드 (0) | 2024.06.30 |
|---|---|
| 퍼센트인코딩 적용 (0) | 2024.06.21 |
| 이미지를 내부 저장소에 저장하는 함수 (0) | 2024.05.01 |
| LiveData 의 변수는 언제 posVaue 와 value 을 골라서 써야될까? (0) | 2024.04.19 |
| 코루틴의 withContext(Dispatchers.Main) 사용하는 이유 (0) | 2024.04.17 |