다음과 같은 몇 가지 유용한 메서드가 포함된 일반적인 list
유형을 작성한다고 가정해 보겠습니다.
그러나 목록t
의 요소 유형을 추가로 제한해야 할 수 있는 다른 유용한 방법이 있습니다. 예를 들어, 다음 t
。例如,我们无法在此 list
类型上实现 contains
유형에는 contains
메소드를 구현할 수 없습니다:
list
为,我们只能实现 contains
as를 선언하면 contains
하지만 이로 인해 비교할 수 없는 유형을 만드는 것이 불가능해집니다. list
.
두 가지 장점을 모두 누릴 수 있는 방법이 있나요? 즉, 비교할 수 없는 유형에 사용할 수 있는 t
的 list[t]
,但在 t
具有可比性的情况下允许它有一个 contains
방법이 있나요?
내가 생각한 것:
비교 가능 목록
/uncomparablelist
/list
或 list
/comparablelist
또는 비교 가능 목록
) 包含
메서드 대신 하지만 난 그 중 어떤 것도 별로 좋아하지 않아요.
이 문제를 해결하는 합리적인 방법은 명시적 비교기를 전달하는 것입니다.
으아악
그럼으아악
유사한 유형의 경우 기본값을 제공할 수 있습니다.으아악
그래서 위의 내용은이 됩니다.
으아악
list
类型中嵌入一个比较器,并为其指定默认值 func(a, b t) bool { return false }
또한
func(a, b t) bool { return false }
을 제공하고 생성자에 전달할 수 있는 사용자 정의 비교기를 노출할 수도 있습니다. 그러나 이것은 당신에게 너무 모호할 수 있습니다. 🎜위 내용은 Golang의 추가 제한 유형 매개변수(Contains 메소드를 사용하여 일반 목록 구현)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!