ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코틀린 타입 시스템 - 컬렉션과 배열
    Kotiln 2019. 7. 22. 10:03

    null 가능성과 컬렉션

    컬렉션 타입 인자에 ? 를 붙이면 컬렉션에 null 을 저장할 수 있다.

    List<Int?> 는 리스트 안의 각 값이 null이 될 수 있다 는 의미이고
    List<Int>? 는 전체 리스트가 null이 될 수 있다는 의미이기 때문에 조심해야 한다.

    filterNotNull 함수는 null이 될 수 있는 값으로 이뤄진 컬렉션에서 null 값을 걸러준다.

    읽기 전용과 변경 가능한 컬렉션

    코틀린은 컬렉션 안의 데이터에 접근하는 인터페이스와 컬렉션 안의 데이터를 변경하는 인터페이스가 분리되어 있다.

    kotlin.collections.Collection 인터페이스 와 kotlin.collections.MutableCollection 인터페이스로 나뉜다.

    객체의 배열과 원시 타입의 배열

    코틀린 배열은 타입 파라미터를 받는 클래스이다. 배열의 원소 타입은 바로 그 타입 파라미터에 의해 정해진다.

    코틀린에서 배열을 만드는 방법
    • arrayOf 함수에 원소를 넘겨서 만들기
    • arrayOfNulls 함수에 정수 값을 인자로 넘기면 모든 원소가 null 이고 인자로 넘긴 값과 크기가 같은 배열을 만들 수 있다.
    • Array 생성자는 배열 크가와 람다를 인자로 받아서 람다를 호출하여 각 배열 원소를 초기화해준다.
      val letters = Array<String>(26) { i -> ('a' +i).toString() }

    코틀린은 IntArray, ByteArray 등의 원시 타입 배열을 제공한다.
    이 모든 타입은 자바 원시 타입 배열인 int[], byte[] 등으로 컴파일된다.

    원시타입 배열을 만드는 방법
    • 각 배열 타입의 생성자는 size 인자를 받아서 해당 원시 타입의 디폴트 값으로 초기화된 size 크기의 배열을 반환한다.
      val numbers = IntArray(5)
    • 팩토리 함수는 여러 값을 가변 인자로 받아서 그런 값이 들어간 배열을 반환한다.
      val numbers = intArrayOf(0, 0, 0, 0, 0)
    • 일반 배열과 마찬가지로 크기와 람다를 인자로 받는 생성자를 사용한다.
      val numbers = IntArray(5) { i -> i * i }

    참고 도서 : Kotlin in Action(2017)

    반응형

    댓글

Designed by Tistory.