package main import "fmt" type foo struct { bar string } func (f foo) String() string { return "Hello from " + f.bar } func Foo(s string) fmt.Stringer { return foo{s} } func main() { f := Foo("bar") fmt.Println(f) } // Output: // Hello from bar