저는 golang을 처음 접했고 다음 구조로 작업 중입니다.
으아아아그 중에서도 T
可以是 int
或 bool
다음 함수를 정의했습니다.
으아아아bool과 같은 다양한 데이터 유형에 위 함수를 사용하려고 할 때 다음을 사용합니다.
으아아아다음과 같은 오류 메시지가 나타납니다:
으아아아"X"를 "X"로 사용할 수 없다는 메시지가 매우 혼란스럽습니다. 내가 여기서 뭘 잘못하고 있는지 알아낼 수 있도록 도와주실 수 있나요?
우선 여기서 더 큰 사용 사례를 측정하기는 어렵지만 런타임 유형 검사(예: f.defaultValue.(T)
)를 수행하고 있으므로 제네릭이 여기에 가장 적합하지 않을 수 있습니다.
두 번째로, go 1.20
를 사용하고 있는 것 같은데, 이로 인해 혼란스러운 오류가 발생합니다.
https://www.php.cn/link/63e8e3643e7f7198858eef325b0600f9
으아아아최신 Playground 버전(go 1.21
이 글을 쓰는 시점)을 사용하면 더 자세한 컴파일 오류가 발생합니다.
https://www.php.cn/link/2d1bcedd27b586d2a9562a0f8e076b41
으아아아유형 제약 조건에서 파생된 유형 bool
被指定的位置 (./prog.go:13:14
)을 나타냅니다.
이 유형 제약 조건 bool
이 제네릭이 아닌 함수 서명과 일치하기 때문입니다:
정확히 편집 일치한다는 의미는 아닙니다.
이 인위적인 예제 를 사용하여 컴파일 오류를 "해결"할 수 있습니다.
으아아아하지만 다시 말하지만 제네릭은 특정 사용 사례에 가장 적합한 솔루션이 아닐 수도 있습니다.
위 내용은 Golang 제네릭 - 함수 포인터를 전달할 때 동일한 유형 대신 유형을 사용할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!