本当にただのメモ

なるべく Qiita に投稿しよう

Stringer を実装していない struct を Stringer 対応させたい場合

struct の埋め込みを駆使すれば良い。

勿論このテクニックは他の interface でも応用可。

package main

import "fmt"

type Person struct {
    Name string
}

type PersonStringer struct {
    Person
}

func (p PersonStringer) String() string {
    return "My name is " + p.Name
}

func main() {
    person := Person{Name: "John"}
    fmt.Printf("%s\n", PersonStringer{person})
}
My name is John

https://play.golang.org/p/OW0Dfpp-crM