영벨롭 개발 일지

[Kotlin]코틀린의 데이터 타입과 변수 본문

Programming Language/Kotlin

[Kotlin]코틀린의 데이터 타입과 변수

영벨롭 2022. 9. 21. 15:58

[ 데이터 타입과 크기 ]

Type Bits 설명
Byte 8 범위 -128 ~ 127
Short 16 범위 -32768 ~ 32767
Int 32 범위 -2^31 - 2^31 - 1
Long 64 범위 -2^63 ~ 2^63 - 1
Char 16 16비트 unicode character
Float 32 6 - 7 significant digits(24 significant bits)
Double 64 16 - 17 significant digits(53 significant bits)
Boolean 8 True or False

 

[ Operand Types ]

 코틀린의 연산의 결과는 피연산자의 type을 유지합니다. 

 

 코틀린의 타입 확인 방법은 다음과 같습니다. 

데이터.javaClass
데이터.javaClass.name

 

 몇 가지 연산을 통해 연산 결과의 타입을 확인하겠습니다. 

 

fun main(){
    val a = 6 * 50
    val b = 1 / 2
    val c = 6.0 * 2.0
    val d = 6.0 * 3

    println("$a: " + a.javaClass)
    println("$b: " + b.javaClass)
    println("$c: " + c.javaClass)
    println("$d: " + d.javaClass)
}

 

 

 

[ Type Casting 형 변환 ]

 

 타입을 명시하지 않았을 때, 컴파일러가 기본적으로 정수형은 Long, 실수형은 Double로 해석하여 타입 인퍼런스 엔진이 인티저 범위를 넘어가는지 확인하고 타입을 정하게 됩니다. 

 

 반면, 리터럴을 선언할 때 타입을 explicit하게 명시했을때는 임의로 타입변환을 하게되면 에러가 발생합니다. 

 

 이 에러는 type mismatch로 발생하는 에러로, 때문에 우리는 강제로 타입을 변환하는 type casting을 해야합니다. 

메소드 설명
toByte() Byte로 변환
toShort() Short로 변환
toInt() Int로 변환
toLong() Long으로 변환
toFloat() Float으로 변환
toDouble() Double로 변환
toChar() Char로 변환
toString() String으로 변환

 

 

 

 

[ More readable ]

 코틀린의 데이터는 underscore(_)를 사용하여 더 가독성있게 표기할 수 있습니다. 

 

 또한, 데이터 시작 또는 끝에 타입을 명시함으로써 가독성을 높일 수 있습니다. 

 

val a = 1_000_000 // underscore
val b = 999_99_999L // Long 타입
val c = 0xFF_EC_DE_5E // 16진수
val d = 0b110_110 // 2진수
val e = 3.14F // Float 타입

 

 

 

[ 문자열 타입 String ]

 코틀린의 문자열은 2개의 큰따옴표(" ")로 감싸 나타낼 수 있으며 \n과 같은 이스케이프 시퀀스 문자도 포함할수 있습니다. 

 

 또한 3개의 큰따옴표(""" """)를 사용하면 왼쪽 여백과 줄바꿈이 모두 반영된 입력한 그대로의 문자열을 나타낼 수 있습니다. 

 

fun main(){
    val str1 = "hello world!"
    val str2 = "hello world!\n"
    val str3 = """
        var temp = 10\n
    """

    println(str1)
    println(str2)
    println(str3)
}

 

 

[ 변수 선언 ]

 코틀린은 statically-typed language입니다. 

 

 코틀린의 type은 컴파일 타임에 결정하는데, 이 type은 explicit하게 명시하거나 타입 인퍼런스 엔진이 유추하여 결정됩니다. 

 

변수 선언 키워드 설명
val Immutable 불변 변수(상수 키워드)
값을 바꾸면 에러
var Mutable 가변 변수 키워드
값 변경 가능

 

반응형