Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 컴퓨터공학 #c #c언어 #문자열입력
- 잔
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- HTML #CSS
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
Archives
- Today
- Total
영벨롭 개발 일지
[Kotlin]코틀린의 데이터 타입과 변수 본문
[ 데이터 타입과 크기 ]
Type | Bits | 설명 |
Byte | 8 | 범위 -128 ~ 127 |
Short | 16 | 범위 -32768 ~ 32767 |
Int | 32 | 범위 -2^31 - 2^31 - 1 |
Long | 64 | 범위 -2^63 ~ 2^63 - 1 |
Char | 16 | 16비트 unicode character |
Float | 32 | 6 - 7 significant digits(24 significant bits) |
Double | 64 | 16 - 17 significant digits(53 significant bits) |
Boolean | 8 | True or False |
[ Operand Types ]
코틀린의 연산의 결과는 피연산자의 type을 유지합니다.
코틀린의 타입 확인 방법은 다음과 같습니다.
데이터.javaClass
데이터.javaClass.name
몇 가지 연산을 통해 연산 결과의 타입을 확인하겠습니다.
fun main(){
val a = 6 * 50
val b = 1 / 2
val c = 6.0 * 2.0
val d = 6.0 * 3
println("$a: " + a.javaClass)
println("$b: " + b.javaClass)
println("$c: " + c.javaClass)
println("$d: " + d.javaClass)
}
[ Type Casting 형 변환 ]
타입을 명시하지 않았을 때, 컴파일러가 기본적으로 정수형은 Long, 실수형은 Double로 해석하여 타입 인퍼런스 엔진이 인티저 범위를 넘어가는지 확인하고 타입을 정하게 됩니다.
반면, 리터럴을 선언할 때 타입을 explicit하게 명시했을때는 임의로 타입변환을 하게되면 에러가 발생합니다.
이 에러는 type mismatch로 발생하는 에러로, 때문에 우리는 강제로 타입을 변환하는 type casting을 해야합니다.
메소드 | 설명 |
toByte() | Byte로 변환 |
toShort() | Short로 변환 |
toInt() | Int로 변환 |
toLong() | Long으로 변환 |
toFloat() | Float으로 변환 |
toDouble() | Double로 변환 |
toChar() | Char로 변환 |
toString() | String으로 변환 |
[ More readable ]
코틀린의 데이터는 underscore(_)를 사용하여 더 가독성있게 표기할 수 있습니다.
또한, 데이터 시작 또는 끝에 타입을 명시함으로써 가독성을 높일 수 있습니다.
val a = 1_000_000 // underscore
val b = 999_99_999L // Long 타입
val c = 0xFF_EC_DE_5E // 16진수
val d = 0b110_110 // 2진수
val e = 3.14F // Float 타입
[ 문자열 타입 String ]
코틀린의 문자열은 2개의 큰따옴표(" ")로 감싸 나타낼 수 있으며 \n과 같은 이스케이프 시퀀스 문자도 포함할수 있습니다.
또한 3개의 큰따옴표(""" """)를 사용하면 왼쪽 여백과 줄바꿈이 모두 반영된 입력한 그대로의 문자열을 나타낼 수 있습니다.
fun main(){
val str1 = "hello world!"
val str2 = "hello world!\n"
val str3 = """
var temp = 10\n
"""
println(str1)
println(str2)
println(str3)
}
[ 변수 선언 ]
코틀린은 statically-typed language입니다.
코틀린의 type은 컴파일 타임에 결정하는데, 이 type은 explicit하게 명시하거나 타입 인퍼런스 엔진이 유추하여 결정됩니다.
변수 선언 키워드 | 설명 |
val | Immutable 불변 변수(상수 키워드) 값을 바꾸면 에러 |
var | Mutable 가변 변수 키워드 값 변경 가능 |
반응형