GO言語のメッソドは一見関数に似てますが……関数名の前に型を指定するトコがあります。
これにより、特定の型等々に付随する処理を書き下す事が可能です。
実際のところ
package main import "fmt" type MyType struct { num int body []byte } func (mt *MyType) String() string { return fmt.Sprintf("%d::%s\n", mt.num, mt.body) } func main() { p := new(MyType) p.num = 12 p.body = []byte("yes") fmt.Printf("%v\n", p.String()) }