在Go中生成任意切片类型的stringer方法
刚来的。所以我在Go tour中读到了关于stringer的内容,我想知道有没有办法为任何类型的切片定义一个通用的自定义stringer()?例如:在Go中生成任意切片类型的stringer方法,go,Go,刚来的。所以我在Go tour中读到了关于stringer的内容,我想知道有没有办法为任何类型的切片定义一个通用的自定义stringer()?例如: package main import "fmt" type IntSlice []int func (a IntSlice) String() string { return fmt.Sprintf("len %d\tcap %d", len(a), cap(a)) } func main() { a:=[40]int{}
package main
import "fmt"
type IntSlice []int
func (a IntSlice) String() string {
return fmt.Sprintf("len %d\tcap %d", len(a), cap(a))
}
func main() {
a:=[40]int{}
sa:=IntSlice(a[:])
fmt.Println(unsafe.Sizeof(a), "\t", unsafe.Sizeof(sa), " ", cap(sa))
fmt.Println(sa)
}
与此类似,但没有类型IntSlice定义
谢谢
type SliceStringer struct {
Slice interface{}
}
func (ss SliceStringer) String() string {
rv := reflect.ValueOf(ss.Slice)
return fmt.Sprintf("len %d\tcap %d", rv.Len(), rv.Cap())
}