val
- Java에서 "final"과 같은 형태
- 불변의 형태로 선언합니다.
- 초기화를 진행하여 형식을 선언하면 변경하지 못합니다.
- 변수가 객체에 주소를 참조하는 형식이면 해당 형식을 바꾸지 못하지만 내부의 데이터는 바꿀 수 있습니다.
fun main(args: Array<String>) {
//val 형태의 String 변수 초기화 진행!
val str = "valTest"
println(str)
//val 형태로 선언하였기 때문에 값 변경 불가능
str = "valChange" //Error 발생
//val 형태의 객체의 주소를 참조하는 형태로 초기화 진행!
val arr = arrayOfNulls<Int>(10)
//val 내부의 값들은 변경 가능!
arr[0] = 1
arr[1] = 2
//참조하는 형식의 형태는 변경 X
arr = arrayOfNulls(20) //Error 발생
}
var
- 가변의 형태로 선언합니다.
- 초기화를 진행하여 형식을 선언해도 변경할 수 있습니다.
- 객체에 주소를 참조하는 형태에도 다시 형식을 선언하여 초기화시킬 수 있습니다.
fun main(args: Array<String>) {
//var 형태의 String 변수 초기화 진행!
var str = "valTest"
println("val 변경전 값 : $str")
//var 형태로 선언하였기 때문에 값 변경 가능
str = "valChange" //Error 발생 X
println("val 변경후 값 : $str \n")
//var 형태의 객체의 주소를 참조하는 형태로 초기화 진행!
var arr = arrayOfNulls<Int>(10)
arr[0] = 1
arr[1] = 2
println("val 배열 변경전 값 : " + arr[0] + " " + arr[1])
println("val 배열 변경전 Size : " + arr.size + "\n")
//var 선언으로 새롭게 초기화로 형식을 변경 가능!
arr = arrayOfNulls(20) //Error 발생 X
arr[0] = 2
arr[1] = 3
println("val 배열 변경후 값 : " + arr[0] + " " + arr[1])
println("val 배열 변경후 Size : " + arr.size)
}
결과
'Kotlin' 카테고리의 다른 글
[Kotlin] Map (2) | 2022.09.19 |
---|---|
[Kotlin] when (0) | 2022.06.22 |
댓글