guricode

[Dart] 자주쓰는 Object 키워드 (예약어) 본문

앱/Flutter&Dart

[Dart] 자주쓰는 Object 키워드 (예약어)

agentrakugaki 2025. 10. 14. 00:09
  • toString()
    • 객체를 사람이 읽기 좋은 문자열로. 로그/디버깅에 유용.
  • operator ==
    • 동등성 비교 오버라이드. 값 기준 비교가 필요할 때 정의.
  • hashCode
    • 객체의 해시값. ==를 값 기준으로 바꾸면, 같은 값 → 같은 hashCode가 되게 오버라이드해야 함.
  • runtimeType
    • 런타임 타입 정보. 예: obj.runtimeType
  • noSuchMethod(Invocation)
    • 존재하지 않는 메서드가 호출됐을 때의 훅. 보통 프록시/동적 위임에 사용.
  • identical(a, b) [최상위 함수]
    • 같은 인스턴스(메모리)인지 확인. 값이 같아도 다른 인스턴스면 false.
  • Object.hash / Object.hashAll
    • 여러 필드로 안전하게 해시 생성. hashCode 구현에 권장.
    • 예: @override int get hashCode => Object.hash(a, b, c);

참고:

  • ==, toString, hashCode는 Object에 기본 제공 → 필요 시 “오버라이드”해서 동작을 바꿀 수 있음.
  • operator는 “키워드”로, 연산자 오버로딩을 정의할 때 쓰는 문법 요소임.
  • https://api.dart.dev/stable/dart-core/Object-class.html