一尘不染

Go 中的 ToString() 函数

go

strings.Join函数仅采用字符串切片:

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

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

type ToStringConverter interface {
    ToString() string
}

在 Go 中有这样的东西,还是我必须像intToString 方法一样装饰现有类型并编写一个包装器strings.Join

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

阅读 360

收藏
2021-11-22

共1个答案

一尘不染

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))
}

输出

101010
2021-11-22