gpt4 book ai didi

go - 在golang中动态创建结构数组

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

我尝试创建一个接受任何结构值的通用函数并创建该结构类型的数组。这是我试过的代码。但我收到错误“t 不是一种类型”。我该如何实现。

    type RegAppDB struct {
nm string
data []interface{}
}

func CreateRegTable(tbl string, rec interface{}) RegAppDB {
t := reflect.TypeOf(rec)
fmt.Println(t)
return RegAppDB{"log", []t}
}

最佳答案

Go 不支持泛型,任何类似的尝试都不会成功。在您的具体情况下,存在几个关键问题:

  • 您不能将变量用作类型。 Go 是编译时静态类型的,因此任何在运行时获取类型信息(即 reflect.TypeOf)的东西都来不及使用您尝试的方式。
  • 同样重要的是,您的结构字段是 []interface{} 类型,这意味着您可以为该字段使用的唯一类型[]interface {}。例如,[]string 是不同的类型,不能分配给该字段。

关于go - 在golang中动态创建结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060982/

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