본문 바로가기
대학/안드로이드(코틀린) 정리

안드로이드 데이터 타입( 코틀린 )

by JJO.A 2022. 10. 21.
데이터 타입

 

코틀린의 모든 변수는 객체이다. 따라서 Int같은 타입도 기초 데이터 타입(primitive type)이 아니라 클래스이다.

 

fun main() {
   	var data1: Int =10
    println(data1)
    
    data1 = data1+10
    println(data1)
    
    data1 = data1.plus(10)
    println(data1)
    
    var data2: Int? =null
}

 

실행화면

코틀린의 모든 타입은 객체이므로 Int 타입의 변수에 정수뿐만 아니라 null을 대입할 수도 있고, 객체의 메서드도 호출 할 수있다.

 

기초 타입 객체

 

Int, Short, Long, Double, Float, Byte, Boolean

  타입 크기(Bit) 허용 값
정수 표현 Int 32 -2147483648~2147483647
Short 16 -32768 ~ 32767
Long 64 -9223372036854775808 ~ 9223372036854775807
실수 표현 Double 64 IEEE 754 부동 소수점 수( 배 정밀도)
Float 32 IEEE 754 부동 소수점 수 (단 정밀도)
2진수 표현 Byte 8 -128 ~ 127
true/false Boolean true/false  

 

val a:Byte = ob00001011

val b:Int = 123
val c:Short = 123
val d:Long = 10L
val e:Double = 10.0
val f:Float = 10.0f

val g:Boolean = true

 

문자와 문자열

 

Char, String

 

Char : 문자를 표현하는 타입, 작은따옴표( ' )로 감싸서 표현, Number 타입으로 표현할 수 없다.

String : 문자열을 표현하는 타입, 큰따옴표( " )나 삼중 따옴표( """ )로 감싸서 사용한다.

 

fun main() {
    val str1 = "Hello \nWorld"	//큰따옴표 사용
    val str2 = """		//삼중 따옴표 사용
    뛰
    어
    뛰
    어
    
    얍!
    """
    println(str1)
    println(str2)
}

 

실행화면

 

※ 문자열 템플릿

: String 타입의 데이터에 변숫값이나 어떤 연산식의 결괏값을 포함해야 할 경우 $ 기호를 이용한다.

 

fun main() {
    val name: String = "JJO"
    println("name : $name, age : ${10+14}")
}

 

실행화면

 

Any : 모든 타입 가능

 

Any는 코틀린에서 최상위 클래스이다. 따라서 Any타입으로 선언한 변수에는 모든 타입의 데이터를 할당 할 수 있다.

 

특수한 상황을 표현하는 타입

 

Unit

  • Unit 타입으로 선언한 변수에는 Unit 객체만 대입 할 수 있다. 따라서 변수로 선언 할 수는 있지만 의미는 없다.
  • 주로 Unit타입은 함수의 반환 타입으로 사용된다. 함수에서 반환문이 없음을 명시적으로 나타낼때 사용
  • 함수를 선언할 때 반환타입을 생략하면 자동으로 Unit이 적용된다.

Nothing : null이나 예외를 반환하는 함수

  • Nothing으로 선언한 변수에는 null만 대입할 수 있다. 따라서 데이터로서의 의미가 없다.
  • 주로 함수의 반환 타입에 사용한다. 함수의 반환 타입이 Nothing이면 반환은 하지만 의미 있는 값이 아니라는 뜻이다.
  • 항상 null만 반환하는 함수나 예외를 던지는 함수의 반환 타입을 Nothing으로 선언한다.

 

널 허용과 불허용

 

코틀린의 모든 타입은 객체이므로 변수에 null을 대입할 수 있지만 변수를 선언 할 대 널 허용( nullable ) 인지 널 불허용( not null )인지 명확하게 선언 하여야 한다.

 

널 허용( nullable ) : 타입 뒤어 물음표를 추가함

널 불허용 ( not null ) : 물음표 추가 X

 

var data1: Int = 10
data1 = null	//오류

var data2: Int? = 10
data2 = null	//성공