>
> I can't find anything saying as such
From https://golang.org/pkg/fmt/ : "*4. If an operand implements the
error interface, the Error method will be invoked to convert the object to
a string, which will then be formatted as required by the verb (if any).*"
As mentioned in another reply, Thing has an Error() method, so it "
implements the error interface."
On Tuesday, August 28, 2018 at 8:15:31 PM UTC-4, Louki Sumirniy wrote:
>
> I discovered quite by accident and now I can't find anything saying as
> such, but this example
>
> package main
>
> import (
> "fmt"
> "errors"
> )
>
> type Thing struct {
> err error
> }
>
> type thing interface {
> Error() string
> }
>
> func (t *Thing) Error() string {
> return t.err.Error()
> }
>
> func main() {
> t := new(Thing)
> t.err = errors.New("testing")
> fmt.Println(t)
> }
>
> https://play.golang.org/p/xBIGIvSZkqO
>
> as you can see by running it, prints the error value inside the struct.
>
> I am writing a library where I am using a 'pipeline' model so I can string
> pointer methods together in a chain, which requires putting an error value
> inside the structure, and then it does this when I print the struct. It's
> quite handy but unexpected. I assume if a struct satisfies the error
> interface it calls it to generate the string.
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.