책/Effective Kotlin

책/Effective Kotlin

[이펙티브 코틀린] 아이템 50: 컬렉션 처리 단계 수를 제한하라

본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 컬렉션 처리 메서드는 각각의 단계에서 추가적인 컬렉션을 만들어낸다. 시퀀스로 처리한다 하더라도 추가적인 객체를 만들어낸다. 따라서 적절한 메서드를 사용해서 컬렉션 처리 단계 수를 적절하게 제한하는 게 좋다. // Soso fun List.getNames(): List = this .map { it.name } .filter { it != null } .map { it!! } // Better fun List.getNames(): List = this .map { it.name } .filterNotNull() // Best fun List.getNam..

책/Effective Kotlin

[이펙티브 코틀린] 아이템 43: API의 필수적이지 않은 부분을 확장 함수로 추출하라

본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 1. 확장 함수의 특징 1) *확장 함수는 import를 통해 사용할 수 있다 확장 함수는 멤버와 달리 별도의 import가 필요하다 이러한 이유로 대개 다른 패키지에 위치한다 직접 멤버를 추가할 수 없는 경우에 사용하기 유용하다 2) 멤버 함수보다 우선순위가 낮다 위에서 언급한 import해서 사용한다는 특징 때문에 같은 타입에 같은 이름으로 여러 개 만들 수 있다 같은 이름으로 다른 동작을 하는 확장 함수가 존재하는 것은 위험할 수 있다 이러한 위험 가능성이 있다면 확장 함수 대신 멤버 함수를 사용하는 것이 좋다 멤버 함수는 확장 함수보다 우선순위..

책/Effective Kotlin

[이펙티브 코틀린] 아이템 42: compareTo의 규약을 지켜라

본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 1. compareTo의 동작원칙 비대칭적 동작: a >= b 이고, b >= a라면, a == b 연속적 동작: a >= b이고, b >= c라면, a >= c 코넥스적 동작: a >= b 또는 b >= a 중에 적어도 하나는 항상 true 2. compareTo의 대안 기본적으로 compareTo를 따로 정의해야 할 상황은 거의 없다. compareTo를 재정의하는 대신, 간단하게 다음의 함수를 이용해서 순서를 지정할 수 있다. sortedBy: 하나의 프로퍼티를 기반으로 순서를 지정할 때 사용 sortedWith: 하나의 프로퍼티를 기반으로 순서..

책/Effective Kotlin

[이펙티브 코틀린] 아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라

본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 1. 프로퍼티 위임이란? 1) 의미 다른 객체의 메서드를 활용해서 프로퍼티 접근자(getter와 setter)를 만드는 것 쉽게 말해 다른 객체에게 프로퍼티의 접근 구현을 맡기는 것 2) 효과 일반적인 프로퍼티의 행위를 추출해서 사용할 수 있다 프로퍼티 접근 로직을 재활용하는 데 그 의의가 있다 2. 사용하는 방법 프로퍼티 위임을 사용할 땐 위임을 받은 객체의 메서드 이름이 중요한데, getter는 getValue, setter는 setValue 함수를 이용하여 정의해야 된다. 그리고 객체를 만든 뒤엔 by 키워드를 사용해서 클래스를 연결시켜줘야 한다..

책/Effective Kotlin

[이펙티브 코틀린] 아이템17: 이름 있는 아규먼트를 사용하라

본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 책에서는 아규먼트라고 나왔지만, 이름 있는 아규먼트(Named Argument)보다는 이름 있는 파라미터(Named Parameter)가 더 보편적인 표현이므로 본문에서는 해당 단어를 사용하고자 한다(사실 책에서도 혼용해서 사용한다..). 1. 이름 있는 파라미터의 장점 1) 값이 어떤 의미를 지니는지 명확하게 표현할 수 있다 // 각각의 아규먼트가 어떤 의미를 지니는지 불명확함 listOf("John", "Tom", "Paul").joinToString(",", "Class:", "!!") // 보다 명확하게 의미를 파악할 수 있음 listOf("J..

코택
'책/Effective Kotlin' 카테고리의 글 목록