Go中的ToString()函数

strings.Join函数仅使用strings.Join片段:

 s := []string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, ", ")) 

但是能够传递实现ToString()函数的任意对象将会很好。

 type ToStringConverter interface { ToString() string } 

在Go中是否有这样的东西,或者我必须用ToString方法来修饰现有types,比如int ,并且写一个包装strings.Join的包装器。

 func Join(a []ToStringConverter, sep string) string 

3 Solutions collect form web for “Go中的ToString()函数”

String() string方法附加到任何指定types,并享受任何自定义的“ToString”function:

 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 

当你有自己的struct ,你可以拥有自己的convert-to-string函数。

 package main import ( "fmt" ) type Color struct { Red int `json:"red"` Green int `json:"green"` Blue int `json:"blue"` } func (c Color) String() string { return fmt.Sprintf("[%d, %d, %d]", c.Red, c.Green, c.Blue) } func main() { c := Color{Red: 123, Green: 11, Blue: 34} fmt.Println(c) //[123, 11, 34] } 

我更喜欢以下内容:

 type StringRef []byte func (s StringRef) String() string { return string(s[:]) } … // rather silly example, but ... fmt.Printf("foo=%s\n",StringRef("bar")) 
  • 如何使用缩短的时区显示date时间?
  • 如何在没有得到“SomeType @ 2f92e0f4”的情况下打印我的Java对象?
  • .NET:如何将exception转换为string?
  • 将对象转换为string
  • 用户友好的字符串的枚举ToString
  • 如何将堆栈跟踪转换为string?
  • java:这是什么:[Ljava.lang.Object;?
  • 如何在Java中使用toString方法将int数组转换为String
  • 在Java枚举中覆盖valueof()和toString()
  • 转储一个Java对象的属性
  • 为什么java中的toString方法似乎不适用于数组