使用数据片段golang初始化创建Struct实例

时间:2016-12-09 18:35:11

标签: go struct initialization runtime

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

  

data := [][]int{{1,2,3}, {4,5,6}}

和struct

  

type A struct { I, J, K int }

现在我想为结构A创建实例运行时,每个数组来自数据,我该如何实现?如果反射是一种方式,那么告诉如何?

这只是我想向您展示的一个例子。但是,如果结构A包含从A到Z的26个字段,其类型为int,并且我有100个数据片段,我可以从中创建/初始化我的结构A,那么如果不在结构上使用点表示法并且只是循环,它是如何可能的over field index并从切片数据中分配该字段?

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

2 个答案:

答案 0 :(得分:0)

我不确定这是否是您要找的,但您可以在一个简单的循环中创建这些对象:

$valid = Validator::make($request->all(), [
    //'name.2' => 'required',
    'name[2]' => 'required',
]);

https://play.golang.org/p/j7fxbmu3jp

提供完整解决方案

答案 1 :(得分:0)

这是一个更紧凑的版本......

只是对数组“数组”数组进行测距,并从每个索引创建一个新的“A”。

无需在单独的功能中执行此操作。

for _, arr := range data {
    a := A{I: arr[0], J: arr[1], K: arr[2]}

    fmt.Println(a)
}

完整解决方案:https://play.golang.org/p/jyN7f9c-o-