Sorry, to barge in but this specific thing is not really an issue as
long as you use the error type as result type. because any value with an
Error() string method does implement the error interface. and even an
empty struct or a nil pointer to a applicable type will do just fine an
matches err != nil

have fun

On 9/22/22 17:29, Tamás Gulácsi wrote:
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
    <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 <mailto: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 <https://groups.google.com/d/msgid/golang-nuts/b9d94e2f-860e-44eb-9f9e-efcd0a82b7d2n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
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/84507652-eabc-c149-bdfb-8032657536ed%40mb0.org.

Reply via email to