2024/03/19 2

아이템15) 리시버를 명시적으로 참조하라

이펙티브 코루틴을 요약한 내용입니다 명시적으로 긴 코드를 사용할 때가 있음 함수와 프로퍼티를 지역 또는 톱레벨 변수가 아닌 다른 리시버로부터 가져온다는 것을 나타낼 때 class User: Person() { private var beersDrunk: Int = 0 fun drinkBeers(num: Int) { this.beersDrunk += num } } 확장 리시버를 명시적으로 참조하게 할 수 있음 리시버를 명시적으로 표시하지 않은 퀵소트 구현 fun List.quickSort(); List { if (size < 2) { return this } val pivot = first() val (smller, bigger) = drop(1).partition { it < pivot } return s..

아이템14) 변수 타입이 명확하지 않은 경우 확실하게 지정하라

이펙티브 코루틴을 요약한 내용입니다 코틀린은 수준 높은 타입 추론 시스템을 갖추고 있음 val num = 10 val name = "Marcin" val ids = listOf(12, 112, 554, 997) 유형이 명확하지 않을 때는 남용하면 좋지 않음 val data = getSomeData() 가독성을 위해 코드를 설계할 때 읽는 사람에게 중요한 정보를 숨겨서는 안됨 코드 정의로 쉽게 이동할 수 없는 Github 등이 환경에서 코드를 읽을 수도 있음 타입을 지정해주면 코드를 쉽게 읽을 수 있음 val data: UserData = getSomeData() 가독성 향상 이외에 안전을 위해서도 타입을 지정하는 것이 좋음 타입은 개발자와 컴파일러 모두에게 중요한 정보