공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
이번 포스팅에서는 코틀린의 기본 타입에 대해 공부합니다.
기본 타입
멤버 함수와 속성을 변수에 call 할 수 있다는 점에서 코틀린에서 모든 것들은 객체입니다.
일부 타입들은 특별한 내부 표현을 가질 수 있습니다.
예를 들어: Numbers, Characters, booleans 타입들은
유저에게는 일반 클래스처럼 보일 수 있지만, 런타임 시에 윈시 값으로 표현됩니다.
Numbers
코틀린에서 숫자를 핸들링할 때는 자바와 유사하지만 완전히 같지는 않습니다.
일부 리터럴이 다르고, 숫자에 대한 암시적 변환이 없습니다.
숫자타입 과 비트 길이
Double 타입 64
Float 타입 32
Long 타입 64
Int 타입 32
Short 타입 16
Byte 타입 8
예제:
fun main(args: Array<String>) {
val a: Int = 123
val b: Long = 123L
val c: Float = 123.0f // f or F
val d: Double = 123.0
val e = 0x0f // 16진수
val f = 0b00001011 // 2진수
println("Int 타입 : $a")
println("Long 타입 : $b")
println("Float 타입 : $c")
println("Double 타입 : $d")
println("16진수 : $e")
println("2진수 : $f")
}
출력 결과:
1.1버전부터는 _(밑줄 문자 : underscore)를 이용한 표현도 가능합니다.
fun main(args: Array<String>) {
val oneThousand = 1_000
val creditCardNum = 1111_2222_3333_4444L
println(oneThousand)
println(creditCardNum)
}
출력결과 :
1000
1111222233334444
공식 문서와 실제 실행 결과가 다른 것이 있어서 추가합니다.
=== 와 == 의 결과가 다른 것을 볼 수 있는데요.
intelij 에서 실행해보니 전부 true가 나오네요 ㅎㅎ 머징;;;
fun main(args: Array<String>) {
val i = 10
val newi: Int? = i
val new2i: Int? = i
println(i === i)
println(newi === new2i)
println("==========")
println(i == i)
println(newi == new2i)
}
명시적 타입 변환
자바는 크기가 작은 타입은 큰 타입으로 자동타입 변환되지만,
코틀린에서는 그렇지 않습니다.
코틀린에서는 항상 명시적으로 타입 변환을 해주어야 합니다.
명시적 타입 변환 메서드 사용 예제
val i2 : Int = 100
val b2 : Byte = i2.toByte()
val s2 : Short = i2.toShort()
val l2 : Long = i2.toLong()
val f2 : Float = i2.toFloat()
val d2 : Double = i2.toDouble()
val c2 : Char = i2.toChar()
println(b2)
println(s2)
println(l2)
println(f2)
println(d2)
println(c2)
* 아래와 같은 형태의 자동 타입 변환은 됩니다.
val d : Double? = 1L + 3.0
val l : Long = 10L + 30
비교 연산
Equals 연산 a == b or a != b
크기 비교 연산 a >b or a < b
범위 화 및 범위 연산
a..b (a ~ b), i in a..b( i 가 a ~ b 사이에 존재하는가), i !in a..b( i in a..b 와 반대)
* -0.0은 0.0 보다 작은 것으로 간주합니다.
Characters
문자는 Char 타입으로 표현됩니다.
Char 타입은 'a' 처럼 사용합니다. 큰 따옴표가 아닌 작은 따옴표 안에 하나의 문자만
사용 가능합니다.
Char 타입은 Number로 바로 사용할 수 없고, 변환을 해야합니다.
toInt() 등의 메서드로 알맞은 타입으로 변환하여 사용하면 됩니다.
Booleans
Boolean 타입은 true 이나 false 값을 가집니다.
a || b : a 나 b 중 하나만 true 면 true 반환
a && b : a 와 b 둘다 true 경우만 true 반환
!a : a가 false이면 true 반환
Arrays
배열은 코틀린에서 Array 클래스로 존재하고 get 과 set 함수를 가집니다.
size 라는 프로퍼티도 있습니다.
배열을 만드는 방법은 다양합니다.
fun main(args: Array<String>) {
// 정수 배열을 만듬.
val arrays = Array(10, { a -> (a + a)})
for( i in arrays ){
println(i)
}
println("====================")
val arrays2 = intArrayOf(10, 20, 30, 40)
for( i2 in arrays2 ) {
println(i2)
}
}
상황에 맞게 두 방법 중 골라서 사용하면 되겠습니다.
Strings
String 문자열 타입은 "hello world" 처럼 큰 따옴표 안에 문자를 넣어 사용합니다.
한 변수에 여러 줄의 문자열을 저장할 수도 있습니다.
fun main(args: Array<String>) {
val c : String = "Hello world"
var c2 : String = """
H
e
l
l
o
w
o
r
l
d
"""
println(c)
print(c2)
}
문자열에 다른 타입을 변수를 같이 사용할 수도 있습니다.
$ or ${} 를 사용하면 됩니다.
fun main(args: Array<String>) {
val age = 27
val str = "I'm $age, and my brother ${age + 1}"
print(str)
}
이상입니다.
다음 포스팅에서는 피키지와 임포트에 대해 공부합니다.
'코틀린(Kotlin)' 카테고리의 다른 글
코틀린(kotlin) : 코틀린 return, break, continue (0) | 2018.01.26 |
---|---|
코틀린(kotlin) : if, when, for, while 문의 제어 흐름 (0) | 2018.01.26 |
코틀린(kotlin) : 패키지와 임포트 package and import (0) | 2018.01.26 |
코틀린(kotlin) : 기본 문법에 대하여 (0) | 2018.01.24 |
코틀린(kotlin) : 안드로이드 개발에서의 코틀린 (0) | 2018.01.24 |