gpt4 book ai didi

go - 如何实现通用 slice 附加器?

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

<分区>

我对 go 比较陌生。我正在尝试编写一个通用的“appender”函数。这是一种简化,但它试图创建一个干净的界面来处理某些列表。具体来说,我对由此产生的两个错误有疑问:

package main

type GenericFunc func() *interface{}
func Append(ints interface{}, f GenericFunc) {
ints = append(ints, f())
}

func ReturnInt() *int {
i := 1
return &i
}

func main() {
var ints []*int
Append(ints, ReturnInt)
}

Playground

prog.go:5:18: first argument to append must be slice; have interface {} prog.go:15:11: cannot use ReturnInt (type func() *int) as type GenericFunc in argument to Append

  1. 为什么 ReturnInt 不能是 GenericFunc 类型?如果这不起作用,我根本不明白 interface{} 是如何与函数一起使用的……可以吗?
  2. 如何接受“通用” slice 并使用反射附加到它?这将涉及检查 GenericFunc 是否返回与 slice 相同的类型,但在此之后附加应该是可能的。

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