728x90 반응형 스터디 2 [Effective Kotlin] Item 52: Limit the number of operations 모든 collection 처리 함수는 비용이 발생합니다. 따라서 수집 처리 단계의 수를 제한하고, 주로 복합 작업을 사용하여 이를 수행합니다. 복합작업은 아래의 예를 보면 이해하기 쉽습니다. 1. null이 아닌 것을 필터링한 다음 2. null을 허용하지 않는 타입으로 캐스팅 하는 대신 filterNotNull을 사용합니다. 1. null을 매핑한 다음 2. 필터링 하는 대신 mapNotNull을 수행할 수 있습니다. class Student(val name: String?) // Works fun List.getNames(): List = this .map { it.name } .filter { it != null } .map { it!! } // Better fun List.getNames(): L.. 2021. 10. 28. [Effective Kotlin] Item 45: Consider extracting non-essential parts of your API into extensions Intro API의 중요하지 않은 부분을 익스텐션으로 추출하는 것을 고려하세요. 클래스에서 final 메서드를 정의할 때, 멤버로 정의할지, 익스텐션 함수로 정의할지 결정해야 합니다. // 메서드를 멤버로 정의 class Workshop(/*...*/) { //... fun makeEvent(date: DateTime): Event = //... val permalink get() = "/workshop/$name" //커스텀 get } // 메서드를 확장함수로 정의 class Workshop(/(...(/) { //... } fun Workshop.makeEvent(date: DateTime): Event = //... val Workshop.permalink get() = "/workshop/$nam.. 2021. 10. 28. 이전 1 다음 728x90 반응형