데이터 타입
코틀린의 모든 변수는 객체이다. 따라서 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 //성공
'대학 > 안드로이드(코틀린) 정리' 카테고리의 다른 글
안드로이드 컬렉션 타입 / Array ( 코틀린 ) (0) | 2022.10.22 |
---|---|
안드로이드 함수 선언 ( 코틀린 ) (0) | 2022.10.21 |
안드로이드 변수 선언하기( 코틀린 ) (0) | 2022.10.21 |
코틀린의 등장 배경/ 자바보다 좋은 점 (0) | 2022.10.21 |
안드로이드 앱 개발의 특징 (0) | 2022.10.21 |