언어(Language)/Kotlin

[Kotlin] 코틀린 데이터 타입 이해하기

잇트루 2023. 10. 22. 23:56
반응형

데이터 타입

코틀린에서 소수 5.5와 정수 5를 더해보자.

fun main() {
    println(5.5 + 5)
}
// 출력
10.5

10.5라는 새로운 소수가 출력된다는 것은 이미 예상했을 것이다.

코틀린에서는 5.5와 같은 소수는 Double, 5와 같은 정수를 Int 타입이다. 또한 두 수를 더한 결과는 10.5라는 Double 타입으로 출력하게 된다. 따라서 코틀린은 타입을 사용해 5.5 + 5라는 식이 올바른 식인지 검증하고, Double 타입의 새 값을 만들어 연산 결과를 저장한다.

  • 타입(Type)은 사용자가 데이터를 어떤 식으로 사용할지를 코틀린에게 전달해 준다.
  • 데이터에 대해 적용할 수 있는 연산, 데이터의 의미, 타입에 속한 값을 저장하는 방식을 정의한다.

 

그렇다면 문자열 타입인 String에 숫자를 더하려고 해 보자.

fun main() {
    println("Kotlin" + 5)
}
// 출력
Kotlin5
  • 위 코드는 코틀린이 String에 숫자를 어떻게 더하는지 알려준다.
  • String 타입의 값과 Int 타입의 값을 서로 연결한 결과를 저장할 새로운 String을 만든다.

 

그렇다면 String 타입에 Double 타입을 곱하면 어떻게 될까?

fun main() {
    println("Kotlin" * 5.5)
}

위와 같은 식으로 조합하면 코틀린이 이해하지 못하며 다음과 같은 오류를 표시한다.

// 출력
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:

 

다양한 타입의 값을 변수에 저장하면, 코틀린은 각 값을 어떻게 쓰는지 살펴보고 각 변수의 타입을 알아내서 우리에게 알려준다. 이를 타입 추론(Type Inference)이라 한다.

var n = 5
val pi = 3.14
  • 코틀린은 n은 Int 타입, pi는 Double 타입으로 추론한다.

 

사용자는 기본적으로 다음과 같이 타입을 지정할 수 있다.

var 식별자: 타입 = 초기화
var n: Int = 5
val pi: Double = 3.14

이는 코틀린이 알아서 타입을 추론하게 두는 것이 아닌 사용자가 직접 타입을 지정하여 코틀린에게 알려준 것이다.

 

코틀린의 기본 타입

코틀린의 기본 타입 중 몇 가지를 살펴보자.

fun main() {
    val n: Int = 5
    val pi: Double = 3.14
    val trueOrFalse: Boolean = true
    val words: String = "Hello Kotlin"
    val character: Char = 'A'
    val lines: String = """큰따옴표 세 개를 사용하면
여러 줄로 문자열을
표현할 수 있다."""

    println(n)
    println(pi)
    println(trueOrFalse)
    println(words)
    println(character)
    println(lines)
}
// 출력
5
3.14
true
Hello Kotlin
A
큰따옴표 세 개를 사용하면
여러 줄로 문자열을
표현할 수 있다.
  • Int 타입은 정수다. 소수점 이하 부분은 없다.
  • Double 타입은 소수로 소수점 이하를 표현할 수 있다.
  • Boolean 타입은 true 또는 false 두 가지만 저장할 수 있다.
  • String 타입은 문자열로 이뤄진 시퀀스를 저장한다. 큰따옴표(”)로 둘러싼 값을 String 객체에 저장한다.
  • Char 타입은 한 문자만 저장할 수 있다.
  • 여러 줄에 걸친 문자열을 만들거나 특수 문자가 들어간 문자열을 만들어야 하는 경우 큰따옴표 세 개로 문자열을 감싸서 사용할 수 있다. 이를 삼중 큰따옴표 String 또는 로(raw) String이라 한다.

 

타입을 섞어서 사용한 경우에도 코틀린은 타입 추론을 사용해 전체 문장이나 식의 의미를 결정한다.

예를 들어, Int와 Double을 섞어 쓰면 코틀린이 결괏값의 타입을 결정한다.

fun main() {
    val n = 5 + 5.5
    println(n)
}
// 출력
10.5
  • n을 계산할 때 Int와 Double을 더하면 코틀린은 타입 추론을 통해 n의 타입을 Double로 결정한다.
  • 타입 추론은 사용자를 돕기 위한 코틀린의 전략 중 하나다. 굳이 사용자가 직접 타입을 지정하지 않아도 보통은 코틀린이 타입을 추론해 준다.

 

 

참고 서적

https://link.coupang.com/a/bdjL0V

 

아토믹 코틀린:코틀린 컴파일러 개발자가 알려주는 코틀린 기본기 87

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형