[Kotlin] 변수, 자료형
코틀린 코드를 연습해볼 수 있는 공식사이트
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. 정수 자료형
자료형 | 크기 | 범위 |
---|---|---|
Byte | 1 byte | $-2^7$ ~ $2^7-1$ (-128 ~ 127) |
Short | 2 byte | $-2^{15}$ ~ $2^{15}-1$ |
Int | 4 byte | $-2^{31}$ ~ $2^{31}-1$ |
Long | 8 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을 제공한다
자료형 | 크기 | 범위 |
---|---|---|
Float | 4 byte (32 bit) | 1.4E-45 .. 3.402823510308 |
Double | 8 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 라이센스를 따릅니다.