Just a Blog

개인적인 코틀린(Kotlin) 정리 (2) - 데이터 타입, Array, String 본문

IT, Computer

개인적인 코틀린(Kotlin) 정리 (2) - 데이터 타입, Array, String

wehong 2021. 4. 20. 13:01

1. 데이터 타입

Java와 다르게 Kotlin에는 primitive 타입이 없다. 모든 타입은 오브젝트이다.

 

(1) 숫자 타입

① 종류

- Long: 64비트 범위 정수 표현

- Int: 32비트 범위 정수 표현

- Short: 16비트 범위 정수 표현

- Byte: 8비트 범위 정수 표현

- Double: 64비트 범위 실수 표현

- Float: 32비트 범위 실수 표현

② 표현

변수에 숫자를 직접 할당할 때, 정수의 기본형은 Int형으로 추론하고 실수의 기본형은 Double형으로 추론한다. 정수값 뒤에 'L'을 붙이면 Long 타입으로 추론되고, 실수값 뒤에 'F'를 붙이면 Float 타입으로 추론한다.

val num1 = 123          (정수값은 기본적으로 Int로 추론한다)

val num2 = 34567L   ('L'을 붙여서 Long 타입으로 추론)

val value1 = 3.14        (실수값은 기본적으로 Double로 추론한다)

val value2 = 5.152F   ('F'를 붙여 Float 타입으로 추론)

16진수값에는 '0x'를 붙이고 2진수값에는 '0b'를 붙여서 표현한다.

 

(2) Boolean

Java의 boolean과 유사하다. C 언어에서 integer값이 논리값을 표현하는 것과 다르게, Int는 Boolean으로 변환되지 않는다.

 

(3) Char

유니코드, escape 문자 등의 한 글자를 표현한다. Java에서처럼 숫자로 인식되지는 않지만 toInt() 등을 사용하여 변환할 수는 있다.

 

(4) String

Java의 String과 유사하다.

 

 

2. 범위

 

(1) '..' 연산자

비교할 수 있는(comparable) 데이터 타입은 '..' 연산자를 통해 범위를 만들 수 있다.

val n = 1..9

val c = 'a'..'z'

 

(2) 'in' 연산자

범위가 만들어지면 'in' 연산자를 통해 특정값이 그 범위 안에 있는지(양쪽 끝 값도 포함해서)를 Boolean값으로 반환받을 수 있다.

val digit = 1..9

val v = 3

if (v in digit) {

println("normal condition")

}

 

(3) for 루프에 활용

범위를 통해 for 루프를 돌게 할 수 있다. 범위의 오름차순으로 루프를 돈다.

val oneToFive = 1..5

for (z in oneToFive) {

println(z)

}

 

 

3. Array

 

(1) arrayOf() 함수

데이터의 array는 arrayOf()라는 라이브러리 함수로 만들 수 있다.

val arr1 = arrayOf(1, 2, 3, 4, 5)         (array 요소들을 arrayOf() 함수의 인자로 직접 입력)

 

(2) Array 생성자

Array의 생성자를 통해 만들 수 있다.

val arr2 = Array(5, {n -> n+3})         (array의 개수와 요소들을 만드는 higher order function을 넣어 생성)

 

(3) 데이터 타입

만들어지는 array의 데이터타입은 요소들을 다 포함할 수 있도록 생성됨

val arr3 = arrayOf(2, 4, 6)               (arr3의 타입은 Array<Int>)

val arr4 = arrayOf(3, 'c', "Hello")     (arr4의 타입은 Array<Any>)

 

 

4. String 표현

 

(1) escape 문자, raw text 표현

Java와 동일하게 String에 escape 문자를 넣을 수 있다.

val text = "Hello. \n I am Tom."

이것을 직접 입력하고 싶다면 문자열에 따옴표 세 개(triple quote)를 사용한다.

val text2 = """Hello.

I am Tom."""

 

(2) String 연결 (concatenation)

Java 처럼 '+' 연산자로 String을 연결할 수 있다.

val mytext = "Hello, " + "World"

 

(3) String template

String 내에 실제값, 변수값, 수식 등을 넣어 표현할 수 있다. String 내 '$'를 변수명이나 수식 등에 붙이면 해당 문자열이 만들어 진다(명확하게 표현하기 위해 '{', '}' 사용 가능).

val name = "Tom"

val text = "Your name is $name, and your name has ${name.length} characters."

val eval = "3 + 4 = ${3 + 4}"

 

 

 

Comments