gpt4 book ai didi

go - 将 []fmt.Stringer 参数传递给函数

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:34 25 4
gpt4 key购买 nike

<分区>

我有一个实现 stringer 接口(interface)的类型

// RowID stores the ID of a single row in a table
type RowID []string

// String implements Stringer interface for RowID
func (r RowID) String() string {
return fmt.Sprintf("[%s]", strings.Join(r, ", "))
}

我有一个函数,我想将这种类型(或任何其他实现 Stringer 接口(interface)的类型)的 slice 传递给。

// PrintChanges ...
func PrintChanges(ids []fmt.Stringer) {
for _, id := range ids {
fmt.Println(id)
}
}

但是,go 编译器给我一个错误:

cannot use rowIDs (type []RowID) as type []fmt.Stringer in argument to PrintChanges

我可以将 RowID 传递给接受单个 fmt.Stringer 的函数

func PrintChange(id fmt.Stringer) {
fmt.Println(id)
}

...
PrintChange(RowID{"1", "24"})

但出于某种原因,我无法将 RowID 的一部分传递给接受 fmt.Stringer 的一部分的函数。我错过了什么?

Go Playground

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