변수
val VS var
val 과 var은 코틀린에서 변수를 선언하는 법이다 사용법은 동일하다 val나 var뒤에 변수명을 적어 선언할 수 있다
예제와 함께 차이를 보면
코드
1
2
3
4
fun main(){
val name = "Kotlin"
println("Hi "+name)
}
출력
1
Hi Kotlin
코드
1
2
3
4
fun main(){
var name = "Kotlin"
println("Hi "+name)
}
출력
1
Hi Kotlin
이것만 봤을 때 val과 var는 동일해 보인다 하지만 변경하려고 할 때 차이가 들어난다
코드
1
2
3
4
5
fun main(){
var name = "Kotlin"
name = "Java"
println("Hi "+name)
}
출력
1
Hi Java
코드
1
2
3
4
5
fun main(){
val name = "Kotlin"
name = "Java"
println("Hi "+name)
}
출력
1
Error
위와 같이 var는 값을 변경할 수 있으나 val는 변경하려고 하면 오류가 뜨는 것을 볼 수 있다
변수 타입
코틀린에서는 변수에 타입을 명시하지 않아도 변수가 선언될 때 할당된 값의 형태로 어떤 자료형을 가지는지 추론한다
하지만 타입 명시가 필요한 경우에는 따로 타입을 명시할 수 있다
코드
1
2
3
4
5
6
7
8
9
10
11
fun main(){
val byte : Byte = 123
val short : Short = 12345
val int : Int = 1234567890
val long : Long = 1234567890123456789
val float : Float = 1.23F
val double : Double = 1.23
val any : Any
}
타입에 따라 저장 가능한 크기도 다르다 또한 실수형 타입을 사용할 때 Flaot 타입은 뒤에 F를 적어 Float타입임을 명시해 줘야 한다 또한 any타입은 어떠한 값이든 될 수 있는 타입을 말한다
코드
1
2
3
4
5
6
7
fun main(){
val bool : Boolean = true
val char : Char = 'a'
val string : String = "abc"
}
숫자형 타입들 이외에도 참 거짓을 나타내는 Boolean 타입 글자 하나를 저장하는 Char 타입 여러 Char 타입을 저장하는 String 타입이 있다
참고로 String 타입은 string[0]과 같이 []안에 숫자를 적어 해당 차례에 요소에 접근이 가능하다
코드
1
2
3
4
5
6
fun main(){
val string : String = "abc"
print(string[0])
}
출력
1
a