我有一个数组数组的数据。
data := [][]int{{1,2,3}, {4,5,6}}
和结构
type A struct { I, J, K int }
现在我想用数据中的每个数组为结构 A 创建实例运行时,我该如何实现?如果反射是一种方式,那么告诉它如何?
这只是我想给你看的一个例子。但是假设如果结构 A 包含从 A 到 Z 的 26 个字段,类型为 int,并且我有 100 个数据片段,我可以从中创建/初始化我的结构 A,那么如果不在结构上使用点符号并只是循环,怎么可能在字段索引上并从 slice 数据分配该字段?
package main
import (
"fmt"
)
type A struct {
I, J, K int
}
func main() {
data := [][]int{
{1, 2, 3},
{4, 3, 2},
}
var a A
// create instance of type A with params
// initialization for each array in data
fmt.Println(a)
}
请通过此链接帮助我:https://play.golang.org/p/rYuoajn5Ln
最佳答案
我不确定这是否是您正在寻找的,但您可以在一个简单的循环中创建这些对象:
func main() {
data := [][]int{
{1, 2, 3},
{4, 3, 2},
}
for _, intArr := range data {
a := NewA(intArr)
// a:= A{I: ints[0], J: ints[1], K: ints[2]}
fmt.Println(a)
}
}
完整解决方案可在 https://play.golang.org/p/j7fxbmu3jp 获得
关于go - 从数据 golang slice 初始化创建 Struct 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41066798/