plain struct error is brittle in other ways, too: you can shoot yourself on foot with "err != nil" check. So: error should be a pointer type.
cpu...@gmail.com a következőt írta (2022. szeptember 21., szerda, 21:26:31 UTC+2): > Consider https://go.dev/play/p/jgPMwLRRsqe: > > errors.As(err, <plain type>) will not match if error is of pointer type. > As a result, a library consumer needs to understand if a library returns > Error or *Error. However, that is not part of the API spec as both returns > would satisfy error if Error() is implemented on the plain type. > > A potential workaround would be using Error.As(any) to match plain/pointer > type as part of the library. However, it seems counterintuitive having to > do so if errors.As() doesn't by default. > > Would it make sense (and I would like to propose) to expand errors.As() to > match plain receiver types even when err is a pointer to the same > underlying plain type. > > What do you think? > > Cheers, > Andi > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/b9d94e2f-860e-44eb-9f9e-efcd0a82b7d2n%40googlegroups.com.