IN 3

[Kotlin] variance(변성), in, out, covariant, contravariant, invariant

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. variance(변성) 개념은 `List` 와 `List` 와 같이 Base 타입이 같고, 타입 인자가 다른 타입들이 서로 어떤 관계가 있는지 설명하는 개념이다. 변성: 인자를 함수에 넘기기 `List` 타입의 파라미터를 받는 함수에 `List` 을 넘기면 안전할까? fun printContents(list: List) { println(list.joinToString()) } printContents(listOf("abc", "bac")) /* abc, bac */ 이 경우에는 `List` 을 사용해도 잘 작동한다. 위 함수는 각 원소를 `Any` 로 취급하며 모든 `String` 은 `..

Kotlin 2024.02.06

[Kotlin] 컬렉션과 범위에 대해 쓸 수 있는 convention(관례)

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 컬렉션에는 인덱스 연산자(`a[b]`) 를 사용항 인덱스로 원소를 설정하거나 가져올 수 있다. `in` 연산자는 원소가 컬렉션이나 범위에 속하는지 검사하거나 원소를 iteration 할 때 사용한다. 커스텀 클래스에서 이러한 연산들을 추가할 수 있다. 인덱스로 원소에 접근: get & set 코틀린이나 자바에서 맵이나 배열 원소에 접근할 때 모두 `[]` 을 사용한다. 코틀린에서는 인덱스 연산자도 convention 을 따른다. 인덱스 연산자를 사용해 원소를 읽는 연산 -> `get` 연산자 메서드로 변환 인덱스 연산자를 사용해 원소를 쓰는 연산 -> `set` 연산자 메서드로 변환 `Po..

Kotlin 2024.01.24

[kotlin] 이터레이션 기초: while, for 루프

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. while 루프 코틀린에는 자바와 같은 문법의 `while` 과 `do-while` 루프가 있다. while (조건) { // 조건이 참인 동안 본문을 반복 실행 /* ... */ } do { /* ... */ } while (조건) // 맨 처음에 무조건 본문을 한 번 실행, 그 후 조건이 참인 동안 본문을 반복 실행 수에 대한 iteration: range(범위), progression(수열) 자바에서는 `for` 루프를 아래처럼 사용한다. `for (어떤 변수 i 를 초기화하는 식; 각 루프 후 조건 검사 ;변수 i를 루프를 한번 실행할 때마다 갱신)` 코틀린에서는 `for` 루프를 ..

Kotlin 2023.12.27