Kotlin/Kotlin문법

[Kotlin 문법] 변수 & 기본 데이터 타입(자료형)

Happy._. 2024. 4. 14. 14:57

Variables(변수)

- 값을 저장, 참조할 수 있음

- 모든 변수는 기본적으로 Non-Nullable

- Nullable이 되기 위해서는 타입 뒤에 ? 기호를 붙여 Nullable임을 명시

 

변수 선언 및 null 허용 변수 사용 예시

// var : 같은 타입의 값으로 변경 가능
var number1 = 0
var number2: String // 초기화 없이 선언 가능, 타입 명시 필수 (단, 초기화 하지 않으면 사용 불가)

number1 = 10

// number1 = "hello" // X, Type mismatch: inferred type is String but Int was expected
// println(number2) // X, Variable 'number2' must be initialized

// val : 값 변경 불가, 초기화 필수
val name: String = "yoyo" // 타입지정, 초기화
val age = 10 // 타입생략, 초기화

// age = 100 // X, Val cannot be reassigned

// null 허용 - null 값이 할당된 변수는 사용할 때마다 null 체크 필요
var nullable: String? = null

// null 허용 변수 사용 예시
if (nullable != null) { /* 실행 코드 */ }

println(nullable?.length) // null
println(nullable ?: "empty") // empty
// println(nullable.length) // X, Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?
// println(nullable!!.length) // X, NullPointerException

nullable = "hello"
println(nullable?.length) // 5
println(nullable ?: "empty") // hello
println(nullable!!.length) // 5

- ? (=세이프 콜 연산자 or 안전 호출 연산자) : null이면 null반환 아니면 .이후(우측) 실행

- ?: (=엘비스 연산자) : null이면 기본값(우측) 반환

- !! (=확정 연산자) : null이 아님을 확신할 때 사용, null이면 NullPointerException 발생

 

기본 데이터 타입(자료형)

구분 테이터타입 설명 값의 범위
숫자형
Double
64비트 실수
-1.7E+308의 근삿값 ~ 1.7E+308의 근삿값
Decimal digits(소수점 아래) : 15 ~ 16
Float
32비트 실수
-3.4E+38의 근삿값 ~ 3.4E+38의 근삿값
Decimal digits(소수점 아래) : 6 ~ 7
Long
64비트 정수
-9,223,372,036,854,775,808 (-2^63)
    ~ 9,223,372,036,854,775,807 (2^63-1)
Int
32비트 정수
-2,147,483,648 (-2^31)
    ~ 2,147,483,647 (2^31-1)
Short
16비트 정수
-32,768 ~ 32,767
Byte
8비트 정수
-128 ~ 127
문자형
Char
1 개의 문자
‘글’ (외따옴표)
String
여러 개의 문자
“여러 개의 문자” (쌍따옴표)
불리언형
Boolean
true, false
true 또는 false

- 정수형 값의 기본 타입 : Int (값의 끝에 L 또는 l을 붙이면 Long)

- 실수형 값의 기본 타입 : Double (값의 끝에 F 또는 f를 붙이면 Float)

- 정수형 변수에 실수형 값 입력 불가 (형 변환 후 입력 가능)