该strings.Join函数仅采用字符串切片:
strings.Join
s := []string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, ", "))
但是,能够传递实现ToString()函数的任意对象会很好。
ToString()
type ToStringConverter interface { ToString() string }
Go中是否有类似的东西,还是我必须int用ToString方法来修饰现有类型并编写一个包装器strings.Join?
int
func Join(a []ToStringConverter, sep string) string
将String() string方法附加到任何命名类型,并享受任何自定义“ ToString”功能:
String() string
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