github.com/zhongdalu/gf@v1.0.0/geg/util/gconv/gconv_struct3.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/zhongdalu/gf/g"
     6  	"github.com/zhongdalu/gf/g/util/gconv"
     7  )
     8  
     9  // 演示slice类型属性的赋值
    10  func main() {
    11  	type User struct {
    12  		Scores []int
    13  	}
    14  
    15  	user := new(User)
    16  	scores := []interface{}{99, 100, 60, 140}
    17  
    18  	// 通过map映射转换
    19  	if err := gconv.Struct(g.Map{"Scores": scores}, user); err != nil {
    20  		fmt.Println(err)
    21  	} else {
    22  		g.Dump(user)
    23  	}
    24  
    25  	// 通过变量映射转换,直接slice赋值
    26  	if err := gconv.Struct(scores, user); err != nil {
    27  		fmt.Println(err)
    28  	} else {
    29  		g.Dump(user)
    30  	}
    31  }