• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 기타게임 소스자료실
    • 기타게임 소스자료실 기타
    • [Rust 공식문서 한국어 정리] 104. Rust PartialEq/Eq 트레이트 가이드

      • 오뉴노노
      • 1시간 전 0

    [Rust 공식문서 한국어 정리] 104. Rust PartialEq/Eq 트레이트 가이드



    원문 제목: Trait std::cmp::PartialEq

    작성자: The Rust Project



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    📌 1. 서론 — 이 문서가 다루는 내용

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    PartialEq와 Eq 트레이트가 제공하는 동등성 비교 메커니즘을 상세히 다룹니다.

    부분 동등성과 완전 동등성의 차이, 수학적 의미를 학습합니다.

    #[derive(PartialEq, Eq)]의 자동 구현과 수동 구현 방법을 정리합니다.

    HashMap 키나 assert_eq!에서 Eq가 요구되는 이유를 설명합니다.

    부동소수점 타입이 PartialEq만 구현하는 이유와 그 의미를 다룹니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    🔑 2. 핵심 개념 4가지

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    ① PartialEq — 동등성 비교(반사, 대칭, 전이성 보장 불필요)

    ② Eq — 완전 동등성(반사, 대칭, 전이성 모두 보장)

    ③ eq/ne — ==와 != 연산자의 기본이 되는 메서드

    ④ assert_eq! — PartialEq를 요구하는 매크로



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    📖 3. 주요 내용 상세

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    PartialEq는 ==와 != 연산자의 기반이 되는 트레이트입니다.

    eq 메서드는 두 값이 논리적으로 동등한지를 판단합니다.

    ne 메서드는 기본적으로 eq의 반환값을 부정하므로 직접 구현할 필요가 없습니다.

    Eq는 PartialEq를 상속하며 추가적인 계약을 요구합니다.

    Eq의 계약은 반사성(a == a), 대칭성(a == b면 b == a), 전이성(a == b고 b == c면 a == c)입니다.

    부동소수점 f32와 f64는 NaN != NaN이므로 반사성이 깨져 Eq를 구현할 수 없습니다.

    따라서 f32와 f64는 PartialEq만 구현하고 Eq는 구현하지 않습니다.

    대부분의 타입은 #[derive(PartialEq, Eq)]로 두 트레이트를 한 번에 자동 구현합니다.

    Eq를 요구하는 제네릭 경계는 HashMap 키나 BTreeMap 키 등에서 사용됩니다.

    완전 동등성이 보장되어야 하는 알고리즘과 자료구조가 Eq를 필요로 합니다.

    수동 구현 시 필드별로 eq를 호출하여 논리적 동등성을 정의할 수 있습니다.

    표현상 다르지만 논리적으로 동등한 값을 eq에서 true로 판단할 수 있습니다.

    반대로 표현상 같지만 논리적으로 다른 값을 eq에서 false로 판단할 수도 있습니다.

    PartialEq의 자동 구현은 모든 필드가 PartialEq이면 구조체도 PartialEq가 됩니다.

    Eq의 자동 구현은 모든 필드가 Eq이면 구조체도 Eq가 됩니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    🛠 4. 실전 활용

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    모든 사용자 정의 타입에 #[derive(PartialEq, Eq)]를 붙여 비교와 테스트를 용이하게 합니다.

    HashMap 키로 사용할 타입은 Eq까지 구현해야 합니다.

    부동소수점을 포함하는 타입은 Eq를 derive할 수 없음을 인지하고 설계합니다.

    수동 eq 구현으로 필드 일부를 비교에서 제외하거나 논리적 동등성을 재정의합니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    ✅ 5. 정리

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    PartialEq는 ==와 !=의 기본이며 Eq는 더 강력한 동등성 계약을 보장합니다.

    부동소수점 타입은 NaN 때문에 Eq를 구현할 수 없습니다.

    #[derive]로 자동 구현이 가능한 경우가 대부분이며 수동 구현은 신중히 해야 합니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    🔗 출처 링크

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    원문: https://doc.rust-lang.org/std/cmp/trait.PartialEq.html

    Eq Trait: https://doc.rust-lang.org/std/cmp/trait.Eq.html



    #Rust #PartialEq #Eq #동등성 #번역

    이 게시물을..
    N
    0
    0
    • [Rust 공식문서 한국어 정리] 105. Rust PartialOrd/Ord 트레이트 가이드오뉴노노
    • 6
      오뉴노노

    오뉴노노 님의 최근 글

    [Rust 공식문서 한국어 정리] 139. RwLock 2026 06.08 [Rust 공식문서 한국어 정리] 152. Modules 2026 06.08 [Rust 공식문서 한국어 정리] 151. Proc Macros 2026 06.08 [Rust 공식문서 한국어 정리] 150. Attribute Macros 1 2026 06.08 [Rust 공식문서 한국어 정리] 149. cfg 2026 06.08

    오뉴노노 님의 최근 댓글

    ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [Rust 공식문서 한국어 정리] 105. Rust PartialOrd/Ord 트레이트 가이드
    • 목록
      view_headline
    × CLOSE
    전체 던파 5 뮤 18 천상비 프로젝트신루 5 아이온 18 어둠의전설 28 리니지2 7 크로노스 5 칼온라인 3 기타 445
    기본 (537) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 포인트 획득 공지
      5
      2026.04.24 - 19:48 4855 5
    • 링크 업로드 관련 공지
      8
      2026.03.25 - 21:56 4662 8
    • 인증메일 공지
      3
      2026.03.15 - 16:42 4561 3
    • 파일링크 및 인증메일 발송 관련 문의 안내
      9
      2026.03.14 - 22:03 5169 9
    • 포인트 게시판 안내
      2026.02.28 - 19:14 5942
    • 게임존 사이트 변경 사항 안내
      9
      2026.02.26 - 01:07 7801 9
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:16 852
    537
    기타
    [Rust 공식문서 한국어 정리] 139. RwLock
    N
    오뉴노노 5분 전
    536
    기타
    [Rust 공식문서 한국어 정리] 152. Modules
    N
    오뉴노노 39분 전
    535
    기타
    [Rust 공식문서 한국어 정리] 151. Proc Macros
    N
    오뉴노노 39분 전
    534
    기타
    [Rust 공식문서 한국어 정리] 150. Attribute Macros
    N
    오뉴노노 39분 전 1
    533
    기타
    [Rust 공식문서 한국어 정리] 149. cfg
    N
    오뉴노노 39분 전
    532
    기타
    [Rust 공식문서 한국어 정리] 148. assert
    N
    오뉴노노 39분 전
    531
    기타
    [Rust 공식문서 한국어 정리] 147. panic
    N
    오뉴노노 39분 전
    530
    기타
    [Rust 공식문서 한국어 정리] 146. Error
    N
    오뉴노노 39분 전
    529
    기타
    [Rust 공식문서 한국어 정리] 145. Any
    N
    오뉴노노 39분 전
    528
    기타
    [Rust 공식문서 한국어 정리] 144. Unpin
    N
    오뉴노노 39분 전
    527
    기타
    [Rust 공식문서 한국어 정리] 143. Pin
    N
    오뉴노노 40분 전
    526
    기타
    [Rust 공식문서 한국어 정리] 142. LazyLock
    N
    오뉴노노 40분 전
    525
    기타
    [Rust 공식문서 한국어 정리] 141. OnceCell
    N
    오뉴노노 40분 전
    524
    기타
    [Rust 공식문서 한국어 정리] 140. Atomic
    N
    오뉴노노 40분 전
    523
    기타
    [Rust 공식문서 한국어 정리] 139. RwLock
    N
    오뉴노노 40분 전
    522
    기타
    [Rust 공식문서 한국어 정리] 138. Mutex
    N
    오뉴노노 42분 전
    521
    기타
    [Rust 공식문서 한국어 정리] 137. Cell
    N
    오뉴노노 44분 전
    520
    기타
    [Rust 공식문서 한국어 정리] 136. RefCell
    N
    오뉴노노 44분 전
    519
    기타
    [Rust 공식문서 한국어 정리] 134. Rust Arc<T> 가이드
    N
    오뉴노노 1시간 전
    518
    기타
    [Rust 공식문서 한국어 정리] 133. Rust Rc<T> 가이드
    N
    오뉴노노 1시간 전
    517
    기타
    [Rust 공식문서 한국어 정리] 132. Rust Box<T> 가이드
    N
    오뉴노노 1시간 전
    516
    기타
    [Rust 공식문서 한국어 정리] 131. Rust Cow<T> 가이드
    N
    오뉴노노 1시간 전
    515
    기타
    [Rust 공식문서 한국어 정리] 130. Rust LinkedList<T> 가이드
    N
    오뉴노노 1시간 전
    514
    기타
    [Rust 공식문서 한국어 정리] 129. Rust VecDeque<T> 가이드
    N
    오뉴노노 1시간 전
    513
    기타
    [Rust 공식문서 한국어 정리] 128. Rust BinaryHeap<T> 가이드
    N
    오뉴노노 1시간 전
    512
    기타
    [Rust 공식문서 한국어 정리] 127. Rust BTreeSet<T> 가이드
    N
    오뉴노노 1시간 전
    511
    기타
    [Rust 공식문서 한국어 정리] 126. Rust HashSet<T> 가이드
    N
    오뉴노노 1시간 전 1
    510
    기타
    [Rust 공식문서 한국어 정리] 125. Rust BTreeMap<K,V> 가이드
    N
    오뉴노노 1시간 전
    509
    기타
    [Rust 공식문서 한국어 정리] 124. Rust HashMap<K,V> 가이드
    N
    오뉴노노 1시간 전 1
    508
    기타
    [Rust 공식문서 한국어 정리] 123. Rust Vec<T> 가이드
    N
    오뉴노노 1시간 전
    507
    기타
    [Rust 공식문서 한국어 정리] 122. Rust &str 타입 가이드
    N
    오뉴노노 1시간 전
    506
    기타
    [Rust 공식문서 한국어 정리] 121. Rust String 타입 가이드
    N
    오뉴노노 1시간 전
    505
    기타
    [Rust 공식문서 한국어 정리] 120. Rust Slice 타입 가이드
    N
    오뉴노노 1시간 전
    504
    기타
    [Rust 공식문서 한국어 정리] 119. Rust Array 타입 가이드
    N
    오뉴노노 1시간 전
    503
    기타
    [Rust 공식문서 한국어 정리] 135. Rust Weak<T> 가이드
    N
    오뉴노노 1시간 전
    502
    기타
    [Rust 공식문서 한국어 정리] 118. Rust Tuple 타입 가이드
    N
    오뉴노노 1시간 전
    501
    기타
    [Rust 공식문서 한국어 정리] 117. Rust Type Alias 가이드
    N
    오뉴노노 1시간 전
    500
    기타
    [Rust 공식문서 한국어 정리] 116. Rust Existential Types 가이드
    N
    오뉴노노 1시간 전
    499
    기타
    [Rust 공식문서 한국어 정리] 115. Rust Generic Associated Types 가이드
    N
    오뉴노노 1시간 전
    498
    기타
    [Rust 공식문서 한국어 정리] 114. Rust Impl Trait 반환 가이드
    N
    오뉴노노 1시간 전
    497
    기타
    [Rust 공식문서 한국어 정리] 113. Rust Higher-Ranked Trait Bounds 가이드
    N
    오뉴노노 1시간 전
    496
    기타
    [Rust 공식문서 한국어 정리] 112. Rust 라이프타임 서브타이핑 가이드
    N
    오뉴노노 1시간 전
    495
    기타
    [Rust 공식문서 한국어 정리] 111. Rust 'static 라이프타임 가이드
    N
    오뉴노노 1시간 전
    494
    기타
    [Rust 공식문서 한국어 정리] 110. Rust Sync 트레이트 가이드
    N
    오뉴노노 1시간 전
    493
    기타
    [Rust 공식문서 한국어 정리] 109. Rust Send 트레이트 가이드
    N
    오뉴노노 1시간 전
    492
    기타
    [Rust 공식문서 한국어 정리] 108. Rust Sized 트레이트 가이드
    N
    오뉴노노 1시간 전
    491
    기타
    [Rust 공식문서 한국어 정리] 107. Rust Copy/Clone 트레이트 가이드
    N
    오뉴노노 1시간 전
    490
    기타
    [Rust 공식문서 한국어 정리] 106. Rust Hash 트레이트 가이드
    N
    오뉴노노 1시간 전
    489
    기타
    [Rust 공식문서 한국어 정리] 105. Rust PartialOrd/Ord 트레이트 가이드
    N
    오뉴노노 1시간 전
    기타
    [Rust 공식문서 한국어 정리] 104. Rust PartialEq/Eq 트레이트 가이드
    N
    오뉴노노 1시간 전
    • 1 2 3 4 5 6 7 8 9 10 .. 11
    • / 11 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay