테스트를 위해 어설션 함수를 작성하면서 제네릭을 사용하려고 하는데 오류 some does not implement testutilt (wrong type for method equals...)
오류가 발생합니다. 그렇다면 아래 코드를 어떻게 작동시킬 수 있습니까?
package test_util import ( "fmt" "testing" ) type TestUtilT interface { Equals(TestUtilT) bool String() string } func Assert[U TestUtilT](t *testing.T, location string, must, is U) { if !is.Equals(must) { t.Fatalf("%s expected: %s got: %s\n", fmt.Sprintf("[%s]", location), must, is, ) } } type Some struct { } func (s *Some) Equals(other Some) bool { return true } func (s *Some) String() string { return "" } func TestFunc(t *testing.T) { Assert[Some](t, "", Some{}, Some{}) // Error: "Some does not implement TestUtilT (wrong type for method Equals...)" }
replacement
으아아아그리고
으아아아그럼 교체
으아아아그리고
으아아아첫 번째 변경으로 초기 오류 메시지가 수정되지만 두 번째 변경이 없으면 코드가 여전히 작동하지 않습니다.
위 내용은 일반 함수로서의 메소드에 대한 유형 제약 조건과의 인터페이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!