-
코틀린 타입 시스템 - 컬렉션과 배열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)
반응형'Kotiln' 카테고리의 다른 글
코틀린 - 함수의 정의와 호출 (0) 2019.07.24 코틀린 기초 (0) 2019.07.23 코틀린 - 연산자 오버로딩과 기타 관례 (0) 2019.07.23 코틀린 타입 시스템 - 원시 타입 (0) 2019.07.19 코틀린 타입 시스템 - null 관련 (0) 2019.07.19