1. val
val은 Valueable의 줄임말이다. Valueable은 사전에 찾아보면 '가치있는' 이라는 뜻이다.
val 키워드가 붙은 코틀린 변수는 한 번 값이 할당이 되면 다른 값으로 재할당이 되지 않는다.
재할당을 하려고 하면 에러가 발생한다.
fun main(args: Array<String>)
{
val str1: String = "abc"
str1 = "bbb"
}
위 코드를 보면, str1 변수에 문자열 "abc"를 할당한 후에
다시 문자열 "bbb"를 할당하려고 하면 에러가 발생한다.
그렇다면 재할당을 하고 싶으면 어떻게 해야할까?
2. var
var 키워드가 붙은 코틀린 변수는 재할당이 가능하다.
fun main(args: Array<String>)
{
var str1: String = "abc"
str1 = "bbb"
println(str1)
}
str1 변수에 문자열 "abc"를 할당한 후에
문자열 "bbb"를 재할당하고 출력을 해보면 'bbb' 라고 출력이 된다.
'bbb'로 재할당이 잘 된 것을 알 수 있다.
3. null
아마 개발을 조금이라도 해보거나, 코딩을 배워봤던 사람이라면,
null 때문에 한번쯤은 고생을 하고 삽질을 해봤을 것이다.
null이란 무엇일까?
null이란 아무 값도 없음을 의미하는 것이며 0이나 ""공백과는 다른 것이다.
코틀린에서는 Nullable 타입과 Non-null 타입이 있다.
Nullable 타입은 말그대로 null 값을 가질수 있다는 의미이며
Non-null 타입은 null값을 가질 수 없다는 의미이다.
fun main(args: Array<String>)
{
val str1: String = null
}
Null can not be a value of a non-null type String
non-null타입인 String 타입에 null이 할당되었기 때문에 발생하는 에러이다.
그렇다면 null값을 할당해야 하는 상황이 생기면 어떻게 해야할까?
fun main(args: Array<String>)
{
val str1: String? = null
println(str1)
}
이렇게 String 뒤에 ' ? ' 를 붙혀주면 끝이다.
이렇게 출력을 해보면 null 이 출력되는 것을 알 수 있다.
이와 같이 코틀린에서는 null처리가 아주 간편하게 할 수 있다.
4. 정리
- val 는 변수를 선언하고 값을 최초 한 번 할당을 하면 다른 값으로 재할당이 되지 않는다.
- var 는 변수에 얼마든지 다른 값들을 재할당을 할 수 있다.
- 코틀린은 null관련해서 Non-null, Nullable 의 두 가지 타입이 있다. Nullable한 변수로 만들기위해서는 자료형 뒤에 ? 을 붙이면 된다
5. 변수의 자료형 확인
val test1 = "1234"
val test2 = 1234
println(test1::class.java.simpleName) // String
println(test2::class.java.simpleName) // Int
println("${test1.javaClass}") // class java.lang.String
println("${test2.javaClass}") // int
변수의 타입 변환
val test11 : String = "1234"
val test12 = Integer.parseInt(test11)
'코틀린' 카테고리의 다른 글
[Kotlin] 코틀린 함수 (0) | 2022.12.27 |
---|---|
[Kotlin] 코틀린 Map, Set (0) | 2022.12.27 |
[코틀린] 코틀린 list 사용 (0) | 2022.12.27 |
[코틀린] 코틀린 반복문 (0) | 2022.12.26 |
[코틀린] 코틀린 조건문 if, when (0) | 2022.12.26 |