php 편집기 Zimo, 안녕하세요! 언급한 빌드 오류 문제와 관련하여 "errors.As should not be error" 오류가 발생하는 데는 여러 가지 이유가 있을 수 있습니다. 첫째, 이 오류는 일반적으로 빌드 중에 잘못된 두 번째 인수가 사용되었음을 의미합니다. 두 번째 매개변수가 정확하고 필수 유형과 일치하는지 확인해야 합니다. 둘째, 테스트에서 잘못된 데이터를 사용하고 있을 수 있습니다. 테스트 데이터를 주의 깊게 검토하고 예상 형식과 요구 사항을 충족하는지 확인하세요. 마지막으로 이 오류는 프레임워크나 라이브러리 문제로 인해 발생할 수도 있습니다. 이 경우 관련 문서를 참조하거나 커뮤니티의 도움을 받아 해결 방법을 찾는 것이 좋습니다. 이 팁이 도움이 되기를 바랍니다!
다음 테스트를 고려해보세요:
으아악이 테스트를 실행하면 빌드 오류가 발생합니다 second 参数返回到错误。不应为 *error
.
놀이터로 가기
그러나 main
에서 정확히 동일한 코드를 실행하면 프로그램이 문제 없이 실행됩니다.
놀이터로 가기
go 1.20을 사용하는 go 놀이터와 로컬 개발 환경에서 이 동작이 나타납니다.
이게 버그인가요?
다음 유형을 error
생성하여 테스트에서 빌드 실패 문제를 해결할 수 있었습니다.
import ( "errors" "fmt" "testing" ) func testerror(t *testing.t) { err := &myerror{} var target error fmt.println(errors.as(err, &target)) } type myerror struct{} func (err *myerror) error() string { return "oops!" }
이 오류는 go vet
命令报告的。 go test
命令自动运行 go vet
以报告重大问题。 go build
命令不运行 go vet
명령으로 인해 발생합니다.
이 경고는 Go의 버그가 아닙니다.
errors.As를 호출하려면 *error
를 두 번째 매개변수로 사용하세요. 예 첫 번째 매개변수가 *error
作为第二个参数调用 errors.As 是没有意义的,因为您已经知道第一个参数满足 error
인터페이스를 충족한다는 것을 이미 알고 있으므로 말이 되지 않습니다. 당신은 거의 확실히 뭔가 잘못하고 있습니다.
위 내용은 테스트에서 두 번째 매개변수에 대해 'errors.As should not be *error' 빌드 오류만 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!