Android/Android.Kotlin
Kotlin - 변수 초기화(Initialization)
자바리안
2021. 12. 14. 21:32
반응형
딱 처음 Kotlin을 접하고 볼 수 있었던 자바와는 살짝 다른 변수 선언과 초기화,,
차이점 2가지는 다음과 같다 :
첫번째, 변수의 타입을 변수명 뒤에 명시해준다.
Java)
String str = "text";
Kotlin)
var str : String = "text"
Kotlin의 경우 변수명 : 데이터타입 형태로 변수를 선언한다.
타입이 굳이 명시하지 않아도 똑똑한 코틀린 컴파일러가 알아서 해결해준다.
보다 쉬운 이해를 위해 아래 코드를 보자 :
fun main() {
val str = "I am a string"
checkDataType(str)
}
fun checkDataType(input : Any) {
when(input) {
is String -> print("Type is String")
is Int -> print("Type is Int")
else -> print("Sth else")
}
}
is 키워드는 뒤에 명시한 객체와 타겟 변수의 타입이 일치하는지 확인해준다.
str 변수에 따로 타입을 명시해주지 않았음에도 불구하고, 어떤 타입인지 잘 찾아주는 스마트함을 엿볼 수 있다.
두번째는 val, var 키워드를 변수명 앞에 붙여 불변(immutable),가변(mutable)을 정의해주는 부분이다.
val = value, var = variable의 약어로, val 로 선언된 변수의 경우 최초 초기화 이후에는 값이 변경이 불가(Java 에서 final과 같은 역할)하며, var의 경우는 그 반대다.
var int1 : Int = 0
int1 = 1 // Good
val int2 : Int = 0
int2 = 1 // Error

val로 선언된 int2의 경우 재정의가 불가하기에, 새로운 값을 할당하면 에러가 발생하며 위와 같은 메시지를 볼 수 있을것이다.
반응형