본문 바로가기

Programming/Kotlin

5. 데이터 타입

5.1 기초 데이터 타입

 5.1.1 숫자 타입(Int, Long, Short, Double, Float)

   - 코틀린에서는 기초 타입 자체가 없다. 코틀린에서 모든 것은 객체(Object)이다.

   - 코틀린에서 Characters는 숫자 타입이 아니며, 숫자 타입에 대한 자동 형 변환을 제공하지 않는다.

   - 숫자 타입에 대입되는 데이터에 UnderLine을 추가할 수 있다. (1_000_000)

 

 5.1.2 논리, 문자와 문자열 타입(Boolean, char, String)

   - String 타입은 문자열 템플릿 개념으로 문자열 내에 변수의 데이터나 특정 연산식 결과에 의한 데이터를 $ 기호로

     쉽게 포함할 수 있다.

   - $변수, ${연산식}

 

 5.1.3 Any 타입

   - 코틀린의 최상위 클래스는 Any이다. 즉 Any는 어떤 타입의 데이터도 대입할 수 있는 타입니다.

   - 특정 변수에 대입되는 타입을 예측할 수 없을 때 유용하게 사용할 수 있다.

   - 타입 예측(is)에 사용될 때도 있고 when처럼 사용할 때도 있다.

 

 5.1.4 null 허용 타입

   - Any 타입도 null을 대입하기 위해서는 '?' 기호를 명시적으로 선언해야 한다.

   - 코틀린은 null 사용에 엄격한 문법이 적용되는데, 그 이유는 null에 안전한 프로그램을 작성하고자 하는 것이 목표 중

     하나이기 때문이다.

 

 5.1.5 Any, Any? 타입

   - Any 타입은 Any? 타입에 대입할 수 있지만, Any? 타입은 Any 타입에 대입할 수 없다.(as 연산자를 이용하여 형 변환)

   - 다른 타입도 null에 대해 같은 관계를 갖는다.

 

 5.1.6 Unit과 Nothing

   - Unit : 함수의 반환 구문이 없다는 것을 표현하기 위해 사용된다.

   - Nothing : 의미 있는 데이터가 없다는 것을 명시적으로 선언하기 위해 사용하는 타입이다.

 

 5.1.7 타입 확인과 캐스팅(is)

   - 특정 타입의 데이터인지를 판단할 때 "is" 연산자를 사용한다.

   - is 연산자를 이용해 타입을 확인할 때 만약 특별한 타입으로 확인되면 명시적으로 타입 캐스팅을 하지 않아도

     자동으로 캐스팅된다.(스마트 캐스팅)

   - 코틀린에서는 기초 데이터 타입에 대한 자동 형 변환을 제공하지 않는다. toXXX() 함수를 이용해 진행한다.

 

5.2 컬렉션 타입

 5.2.1 배열(Array)

   - arrayOf() 함수를 이용하여 배열 생성

   - arrayOf<type>() / XXXArrayOf()를 이용하여 배열 생성

   - Array(size, init)를 이용하여 배열 생성

   - Array<type> / IntArray 클래스를 이용하여 배열을 생성할 수 있음

   - arrayOfNulls(size) : 배열을 null 값으로 초기화하면서 생성

   - Array<String>(size, "") : 배열의 초깃값을 빈 상태("")로 대입하여 생성

 

 5.2.2 List, Set, Map

   - List : 순서가 있는 데이터 집합. 데이터의 중복 허용

   - Set : 순서가 없으며 데이터의 중복을 허용하지 않음

   - Map : 키와 값으로(key, value) 이루어지는 데이터 집합. 순서가 없으며 키의 중복은 허용하지 않음

   - listOf(), mutableListOf() 대신 ArrayList 클래스를 직접 이용하여 생성할 경우 가변 상태로 이용된다.

   ex) var arrayList:ArrayList<String> = ArrayList()

 

 5.2.3 이터레이터(Iterator)

   - 컬렉선 타입의 데이터를 hasNext()와 next() 함수를 이용해 차례로 얻어서 사용하기 위한 인터페이스이다.

   - List, Map, Set, Array 타입의 데이터 모두 이터레이터 타입의 객체로 변형하여 이용할 수 있다.

   ex) val iterator : Iterator<Map.Entry<String,String>> = map.iterator()

 

'Programming > Kotlin' 카테고리의 다른 글

7. 클래스  (0) 2020.01.16
6. 흐름 제어 구문과 연산자  (0) 2020.01.13
4. 변수와 함수  (0) 2020.01.10
3. 코틀린 기본 작성법  (0) 2020.01.08
2. Kotlin 개발환경  (0) 2020.01.08