개발 일기

기본 타입? 본문

컴퓨터 언어/kotlin

기본 타입?

이건욱

 

정수형 :)

정수는 4가지에 타입이 존재 합니다.

 

 

Type Size Min value Max Value
Byte 8 -128 127
Short 16 -32768 32767
Int 32 -2.147.483.648 2,147,483,647
Long 64 -9,223,372,036,854,775,808 9.223.372.036.854.775.807

 

기본적으로 Int형을 초과하기 전까지는 Int형을 가집니다.

 

 

실수형 :)

실수는 두가지가 존재합니다.

 

Type Size (bits) Significant bits Exponent bits Decimal digits
Float 32 24 8 6-7
Double 64 53 11 15-16

 

모든 숫자는 다음 형식으로 변환이 가능합니다.

 

함수명 리턴
toByte() Byte
toShort() Short
toInt() Int
toLong() Long
toFloat() Float
toDouble() Double
toChar() Char

 

비트 단위 연산자 :)

 

val x = (1 shl 2) and 0x000FF000
shl(bits) bit값을 왼쪽으로 이동
shr(bits)
bit값을 오른쪽으로 이동
ushr(bits)
bit값을 오른쪽으로 이동후 새로운 비트는 0으로 채웁니다.

 

Char :)

 

16비트 유니코드 문자를 나타냅니다.

 

class Char : Comparable<Char>

 

Booleans :)

 

두가지에 값을 가지고 있습니다. (true and false)

 

Booleans에는 내장된 연산이 포함되어 있습니다. ( || - 하나만 참 , && - 둘다 참 , ! - 반대 )

 

 

Arrays :)

 

Kotlin 배열은 Array 클래스로 표현됩니다.

class Array<T> private constructor() {
    val size: Int
    operator fun get(index: Int): T
    operator fun set(index: Int, value: T): Unit

    operator fun iterator(): Iterator<T>
    // ...
}

 

 초기화는 arrayOf() , arrayOfNulls() 가 사용이 가능합니다.

 

 또다른 방법으로는 Array() 생성자를 이용하여 사이즈 만큼 잡고 각각에 초기화 값을 리턴 시키는 방법도 있습니다.

val a = arrayOf(1,2,3)
val b = arrayOfNulls<Int>(3)
val c = Array(5) { i -> (i * i).toString() }
c.forEach { println(it) }

 

Primitive type arrays  :)

 

ByteArray , ShortArry , IntArray 등 다양한 Array가 존재합니다. 이 클래스는 Array 와는 상관이 없지만 해당 유사한 기능을 제공합니다.

 

 

부호 없는 정수 :)

 

kotlin.UByte : 부호없는 8비트 정수 , ( 0 ~ 255 )

kotlin.UShort : 부호없는 16비트 정수 , ( 0 ~ 65535 )

kotlin.UInt : 부호없는 8비트 정수 , ( 0 ~ 2^32 - 1 )

kotlin.ULong : 부호없는 8비트 정수 , ( 0 ~  2^64 - 1)

 

 

String :)

 

문자열 입니다.

 

아래와 같이 """ 개행 및 다른 캐릭터를 포함 할수 있습니다.

val text = """
    for (c in "foo")
        print(c)
"""

 

아래와 같이 해당 변수를 사용할수도 있습니다.

val i = 10
println("i = $i") // prints "i = 10"

val s = "abc"
println("$s.length is ${s.length}")

'컴퓨터 언어 > kotlin' 카테고리의 다른 글

Interface ?  (0) 2020.04.17
Properties and Fields ?  (0) 2020.04.16
class ?  (0) 2020.04.15
if , when , for , while ?  (0) 2020.04.12
Idioms (관용구)  (0) 2020.04.11
Comments