4 ответов:
вложение
String() stringметод для любого именованного типа и наслаждайтесь любой пользовательской функциональностью "ToString":package main import "fmt" type bin int func (b bin) String() string { return fmt.Sprintf("%b", b) } func main() { fmt.Println(bin(42)) }детская площадка:http://play.golang.org/p/Azql7_pDAA
выход
101010
еще один пример со структурой:
package types import "fmt" type MyType struct { Id int Name string } func (t MyType) String() string { return fmt.Sprintf( "[%d : %s]", t.Id, t.Name) }будьте осторожны при его использовании
конкатенация с '+' не компилируется :t := types.MyType{ 12, "Blabla" } fmt.Println(t) // OK fmt.Printf("t : %s \n", t) // OK //fmt.Println("t : " + t) // Compiler error !!! fmt.Println("t : " + t.String()) // OK if calling the function explicitly
Я предпочитаю что-то вроде следующего:
type StringRef []byte func (s StringRef) String() string { return string(s[:]) } … // rather silly example, but ... fmt.Printf("foo=%s\n",StringRef("bar"))
Comments