Skip to content

Latest commit

 

History

History
25 lines (18 loc) · 1.7 KB

아이템37_데이터_집합_표현에_data_한정자를_사용하라.md

File metadata and controls

25 lines (18 loc) · 1.7 KB

아이템 37: 데이터 집합 표현에 data 한정자를 사용하라

  • data 한정자를 붙이면,다음과 같은 몇 가지 함수가 자동으로 생성됩니다.
    • toString : 로그를출력할때나 디버그할 때 유용
    • equals, hashCode : 기본 생성자의 프로퍼티가 같은지 확인해 줍니다. 그리고 hashCode 는 equals와 같은 결과를 냅니다.
    • copy : immutable 데이터 클래스를 만들 때 편리
    • componentN(componentl, component 2 등) : 위치를 기반으로 객체를 해 제할 수 있게 해 줍니다.
      • 위치를 잘못 지정하면, 다양한 문제가 발생할 수 있어서 위험합니다. 위치 순서를 혼동해서 객체를 찰못 해제하는 문제는 굉장히 자주 발생합니다.
      • 객체를 해제할 때는 주의해야 하므로 데이터 클래스의 기본 생성자에 붙어 있는 프로퍼티 이름과 같은 이름을 사용하는 것이 좋습니다.

튜플 대신 데이터 클래스 사용하기

  • 코틀린의 튜플은 Serializable을 기반으로 만들어지며, toString을 사용할 수 있는 제네릭 데이터 클래스입니다.
  • Pair와 Triple는 코틀린에 남아 있는 마지막 튜플
  • 튜플은 굉장히 좋아 보였지만, 언제나 데이터 클 래스를 시용하는 것이 더 좋았기 때문에 점차 없어진 것
  • 데이터 클래스를활용하면,튜 플을 활용할 때보다 더 많은 장점이 있습니다.
    • 함수의 리턴 타입이 더 명확해집니다.
    • 리턴 타입이 더 짧아지며, 전달하기 쉬워집니다.
    • 사용자가 데이터 클래스에 적혀 있는 것과 다른 이름을 활용해 변수를 해제하면, 경고가 출력됩니다.