https://play.golang.org/p/zoi0IS4PbIe


외부라이브러리 함수가 error를 리턴 했어

근데 이 error의 concrete type이 MyError 타입인지 &MyError 타입인지 몰라

나는 그게 value인지 pointer인지 관심이 없고 단지 "MyError로 간주할 수 있는가 아닌가?" 인데
위의 예제코드를 보면 errors.As는 value/pointer인지가 불일치하면 변환을 거부하고 있음...

내가 구현을 모르는 함수가 error를 리턴했는데 "이게 라이브러리에서 정의한 MyError인가?"

를 알고 싶으면 As를 pointer와 value 타입 둘 모두에 대해서 테스트 해봐야 하는거야?


아니면 MyError가 똑똑한 As를 구현했기를 믿는 수 밖에 없나?