나중에도 봐야겠지?

2024.04.11 (목) 코틀린 데이터 타입

혹시나도? 2024. 4. 11. 15:10

코틀린에서 소수를 Double이라 부르고, 정수를 Int라 부른다.

타입(type)(데이터 타입이라고도 함)은 대상 데이터를 어떤 식으로 사용할지를 코틀린에게 말해준다

타입은 어떤 식이 취할 수 있는 값의 집합을 제공한다

데이터에 대해 적용할 수 있는 연산, 데이터의 의미, 타입에 속한 값을 저장하는 방식을 정의한다

 

fun main() {
  println("Sally" + 5.9)
}

출력

Sally5.9

 

타입은 코틀린이 각 타입에 속하는 값과 연산을 어떻게 사용하는것이 올바른지 알려준다

위 코드를 보면

타입 규칙은 코틀린이 어떻게 String에 숫자를 더하는지 알려준다

즉, 두 값을 서로 연결한 결과를 저장할 새로운 String을 만든다

이제 +를 *로 바꿔서 String에 Double을 곱해보자

"Sally * 5.9

 

타입을 이런 식으로 조합하면 코틀린이 이해하지 못하므로 오류를 표시한다

다양한 타입의 값을 변수에 저장하면, 코틀린은 각 값을 어떻게 쓰는지 살펴보고 각 변수의 타입을 알아내서 우리에게 알려준다

이를 타입 추론(type inference)이라고 한다

 

fun main() {
  val whole: Int = 11                  //[1]
  val fractional: Double = 1.4         //[2]
  val trueOrFalse: Boolean = true      //[3]
  val words: Sstring = "A value"       //[4]
  val character: Char = 'z'            //[5]
  val lines: String = """Triple quotes let
you have many lines             
in your string"""                      //[6]

  println(whole)
  println(fractional)
  println(trueOrFalse)
  println(words)
  println(character)
  println(lines)
}

출력

11
1.4
true
A value
z
Triple quotes let
you have many lines
in your string

 

[1] Int 데이터 타입은 정수(integer)다. 즉, 소수점 이하 부분이 없다는 뜻이다

[2] 소수가 있는 수를 저장하려면 Double을 사용한다

[3] Boolean 데이터 타입은 두 가지 특별한 값, true와 false만 저장할 수 있다

[4] String은 문자로 이뤄진 시퀀스를 저장한다. 문자를 큰 따옴표롤 둘러싼 값을 string 객체에 저장 할 수 있다

[5] char는 한 문자만 담을 수 있다

[6] 여러 줄에 걸친 문자열을 만들거나 특수 문자가 들어간 문자열을 만들어야 하는 경우 , 큰따옴표 세 개(""")로 문자열을 감싼다

(이런 문자열을 삼중 큰따옴표 String 또는 로(raw)String이라고 부른다)

 

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

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

 

fun main() {
  val n = 1 + 1.2
  println(n)
}

출력

2..2

 

n을 계산할 때 Int와 Double을 더하면 코틀린은 타입 추론을 사용해 결괏값의 타입이 Double이라 결정하고,

이렇게 생성된 결과가 Double에 대한 모든 규칙을 준수하는지 확인한다