首页 > 解决方案 > 如何将 []interface 转换为 []struct

问题描述

例如:

代码: type person struct { //struct id int name string }

func example()  {
  var (
      p []person
      pi []interface{}
  )
  pi = append(pi, person{
      id:   1,
      name: "Mike",
  })
}

如何将pi转换为p?

标签: gostructinterfaceslice

解决方案


试试这个:

package main

import (
    "fmt"
)

type person struct { //struct
    id   int
    name string
}

func main() {
    var (
        p  []person
        pi []interface{}
    )
    pi = append(pi, person{
        id:   1,
        name: "Mike",
    })
    for _, tmp := range pi {
         // fmt.Println(tmp,k)
         p = append(p, tmp.(person))
         fmt.Println( p)
    }

}

推荐阅读