포스트

[Kotlin] 변수, 자료형

play.kotlinlang.org

코틀린 코드를 연습해볼 수 있는 공식사이트


1. 변수

1.1. 변수 선언 및 할당

  • val : 읽기 전용, 할당 후 재할당 불가(Immutable)
  • var : 변경할 수 있는 변수(Mutable)
1
2
3
4
5
6
val kot = 5
var abc = 7

abc = 10

println(abc)
1
10

1.2. 문자열 템플릿

" 사이의 변수는 $를 앞에 두면 할당된 값이 출력된다

${ }로 표현식에서 코드 사용 가능하다

1
2
3
4
val 사람 = 10
println("사람이 $사람 명인가?")

println("${사람 + 1} 명이다")
1
2
사람이 10 명인가?
11 명이다



2. 자료형

Java에서는 int, long, float, double 등 기본형과 String, Data와 같은 참조형 자료형을 함께 사용한다

자료형에서 참조형인 경우는 null이 허용되고 제너릭을 사용할 수 있다

코틀린에서는 모두 참조형 자료형을 사용한다

코틀린 변수들은 컴파일 후 기본형으로 변환되어 JVM에서 실행된다

따로 변수명을 지정하지 않으면 알아서 추론하여 지정해준다

변수선언키워드 변수명: 타입 = 값


2.1. 정수 자료형

자료형크기범위
Byte1 byte$-2^7$ ~ $2^7-1$ (-128 ~ 127)
Short2 byte$-2^{15}$ ~ $2^{15}-1$
Int4 byte$-2^{31}$ ~ $2^{31}-1$
Long8 byte$-2^{63}$ ~ $2^{63}-1$

앞에 U를 붙이면 부호없는 자료형 (ex: UInt)

1
2
3
4
5
6
7
8
9
val num: Int = 10
val num1 = 10   // 보통 정수형은 Int로 추론
val num2 = 10L  // 뒤 L을 붙이면 Long

println(num1 is Int)  // true
println(num2 is Long) // true

//  가독성을 위해 언더스코어(_)를 사용할 수 있음
val num3 = 1_234_567  // 1234567

2.2. 실수 자료형

IEEE 754 부동소수점수를 따르는 Float와 Double을 제공한다

자료형크기범위
Float4 byte (32 bit)1.4E-45 .. 3.402823510308
Double8 byte (64 bit)4.9E-324 .. 1.797693134862315710308
1
2
3
4
5
val ff = 1.0   // 소수점일 시 일반적으로 Float로 추론
val pi = 3.14f // f, F 붙이면 Float 타입
val one = 1F

println("$pi $one")
1
3.14 1.0

2.2.1. 과학적 표기법

1
2
3
4
val pi = 0.314E1        //   3.14 = 0.314 * 10
val pi100 = 0.314E3     //  314.0 = 0.314 * 1000
val piOver100 = 3.14E-2 // 0.0314 = 3.14 / 100
val thousand = 1E3      // 1000.0 = 1 * 1000

2.2.2. 실수 자료형 특별상수

1
2
3
4
5
6
println(Float.MIN_VALUE)                // 1.4E-45
println(Double.MAX_VALUE)               // 1.797693134862315710308
println(Double.POSITIVE_INFINITY)       // Infinity
println(1.0 / Double.NEGATIVE_INFINITY) // - 0.0
println(2 - Double.POSITIVE_INFINITY)   // -Infinity
println(3 * Float.NaN)                  // NaN

.MIN_VALUE, .MAX_VALUE : 각 타입의 최소,최대 유효값 .NEGATIVE_INFINITY, .POSITIVE_INFINITY : 음의 무한대와 양의 무한대 .NaN : Not a Number, 숫자가 아님을 의미


2.3. 문자열 자료형

2.3.1. 문자

1
2
var char1: Char = 'a'
var char2 = '가'

''작은 따옴표로 감싸서 표현

2 byte로 한글도 가능


2.3.2. 문자열

1
2
var str1: String = "abcdefg"
var str2 = "가나다라마바사"

""큰 따옴표로 감싸서 표현

여러 문자열을 배열하여 저장

String은 Hip 영역에 String Pool이라는 공간에 문자열을 저장하고 이를 참조하는 식으로 저장된다

1
2
3
4
5
6
7
var str1 = "Hello"
var str2 = "Bye"
var str3 = "Hello"

// === : 참조 비교 연산자
println(str1 === str2)  // false
println(str1 === str3)  // true

그래서 str1과 str3의 참조 비교를 하면 같다고 나오게 된다


2.4. 논리 자료형

참, 거짓을 표현하는 자료형

ture, false를 값으로 할당 시 Boolean으로 추론됨

1
2
var isTrue: Boolean = true
var isFalse = false
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.