, =) Go Generics를 사용하시겠습니까? " />
Go 1.18에서 Generics는 유형 호환성을 강화하기 위해 맞춤형 제약 조건을 허용합니다. 그러나 '>' 연산자에 '비교 가능' 제약 조건을 사용하면 오류가 발생할 수 있습니다.
'비교 가능' 제약 조건은 해당 유형이 동등 연산자('==' 및 '!= '). 이는 비교 가능한 필드가 있는 배열 및 구조체를 포함하여 맵 키로 적합한 유형을 포함합니다. 특히 인터페이스는 런타임 패닉을 일으킬 수 있으므로 제외됩니다. 비교.
Go 사양에서는 "비교 연산자"라는 용어 아래 순서 연산자를 언급하지만 동등성('==' 및 '!=')과 순서를 구별합니다. 연산자('<', '>', '<=', '>=') 순서는 다음과 같은 유형으로 제한됩니다. 'ordered.'
Go 1.21
1.18로 이동 1.20
예:
import "golang.org/x/exp/constraints" func getBiggerNumber[T constraints.Ordered](t1, t2 T) T { if t1 > t2 { return t1 } return t2 }
적절한 제약 조건을 선택하면 일반 함수에서 유형 호환성과 올바른 비교 동작을 보장할 수 있습니다.
위 내용은 Go Generics에서 순서 연산자(<, >, <=, >=)를 어떻게 안전하게 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!