gpt4 book ai didi

go - 在 Go 中创建一个任意 slice 类型的 stringer 方法

转载 作者:IT王子 更新时间:2023-10-29 01:57:02 25 4
gpt4 key购买 nike

刚接触 Golang。所以我在 Go 之旅中读到了关于 stringer 的内容,我想知道是否有任何方法可以为任何类型的 slice 定义一个通用的自定义 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{}
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())
}

https://play.golang.org/p/jWnm9vCDFhq

关于go - 在 Go 中创建一个任意 slice 类型的 stringer 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50669063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com