go - 从数据 golang slice 初始化创建 Struct 实例

标签 go struct initialization runtime

我有一个数组数组的数据。

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/

相关文章:

windows - 获取windows进程启动时间

go http.Request.Conn.ActiveConn是一个map,那么会不会有并发map的问题呢?

c - C 编程中哪个约定更好?

c# - 使用初始化 block 不好吗

c++ - 用于更改静态成员初始化行为的简洁语法

go - 如何在Go中获取结构体中字段的真正指针?

mongodb - 如何使用findone从Mongodb集合返回数组

c - 在 typedef 中定义的结构中初始化变量是否合适(C 编程)

c - 在 C 中定义结构体

swift - 在类 init() 中使用 CLGeocoder