본문 바로가기
728x90

공부/이펙티브코틀린48

아이템 2 - 변수의 스코프를 최소화하라 상태를 정의할 때는 변수와 프로퍼티의 스코프를 최소화하는 것이 좋습니다. 프로퍼티: 클래스의 일부로 객체의 상태를 나타낸다. 인스턴스 변수, 스태틱 변수 프로퍼티보다는 지역 변수를 사용하는 것이 좋습니다. 최대한 좁은 스코프를 갖게 변수를 사용합니다. 프로그램을 추적하고 관리하기 쉽기 때문. 변수는 읽기 전용 또는 읽고 쓰기 전용 여부와 상관 없이, 변수를 정의할 때 초기화되는 것이 좋습니다. 여러 프로퍼티를 한꺼번에 설정해야 하는 경우에는 구조분해 선언(destructuring declarration)을 화용하는 것이 좋습니다. 구조분해: 객체가 가지고 있는 여러 값을 분해해서 여러 변수를 한꺼번에 초기화 할 수 있다. // 책에 있는 예시도 좋치만 좀 더 간단한 예시 // data class 는 구조.. 2024. 3. 25.
아이템 52 - mutable 컬렉션 사용을 고려하라 아이템 1 - 가변성을 제한하라 와의 연관된 아이템 2024.03.23 - [공부/이펙티브코틀린] - 아이템 1 - 가변성을 제한하라 immutable 컬렉션보다 mutable 컬렉션이 좋은 점은 성능적인 측면에서 더 빠르다는 것이다. immutable 컬렉션에 요소를 추가하려면, 새로운 컬렉션을 만들면서 여기에 요소를 추가해야 합니다. plus 함수는 새로운 객체를 반환합니다. 이처럼 컬렉션을 복제하는 처리는 비용이 굉장히 많이 드는 처리입니다. 이러한 복제 처리를 하지 않는 mutable 컬렉션이 성능적 괌점에서 좋습니다. 정리 가변 컬렉션은 일반적으로 추가 처리가 빠르다. item 1: 가변성을 제한하라 에서 언급한 immutable 컬렉션은 안전하다 측면에서는 좋다. 일반적인 지역 변수는 이때 언.. 2024. 3. 25.
아이템 1 - 가변성을 제한하라 아이템 1: 가변성을 제한하라. 가변 프로퍼티 var -> 프로그램 실행중에 변경될 수 있음을 의미 mutable 객체 -> 내부 상태를 변경할 수 있는 객체 변할 수 있는 지점은 줄일수록 좋다 코틀린에서 가변성 제한하기 읽기 전용 프로퍼티 - 읽기 전용 프로퍼티는 val 키워드 사용하여 정의 -> 한번 초기화되면 변경할 수 없다. - 프로퍼티가 가르키는 객체의 상태가 불변임을 가르키는 것은 아니다. val list = mutableListOf(1, 2, 3) list = mutableListOf(4, 5, 6) //에러 - list 는 mutableListOf 를 통해 생성된 가변 리스트를 가리키는 읽기 전용 프로퍼티 - list 가 val 로 선언되었기 때문에 list = mutableListOf(4.. 2024. 3. 23.
728x90