golang 指针值如何转化为其结构体?

比如创建了一个指针值的切片,但无法直接赋值为其结构体创建的切片。

以下会报错

package main
import "fmt"
type Task struct {
   TaskNodes TaskNode `json:"task_nodes"`
}
type TaskNode struct {
   Name string `json:"name"`
}
func getData() (nodes []*TaskNode) {
   nodes = make([]*TaskNode, 0)
   return
}

func main() {
   var nodes []TaskNode
   nodes2 := getData()
   nodes = nodes2
   fmt.Println("nodes = ", nodes)
}

必须再一次循环转入,除此之外,有没有其他更好的方法

for _, n := range nodes2 {
   nodes = append(nodes, *n)
}
阅读 6.4k
3 个回答

var nodes []*TaskNode

新手上路,请多包涵

确实没有更好的办法

类型都不一样呢,直接赋值不正确哦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题