为了账号安全,请及时绑定邮箱和手机立即绑定

Go-具有数组并丢失值的递归结构

Go-具有数组并丢失值的递归结构

Go
ITMISS 2021-04-25 12:48:52
我创建了一个具有父级和子级的Element结构,创建了一个名为SubElement的辅助函数,以及一个遍历所有子级进行打印的String方法:package mainimport "fmt"type Element struct {  parent *Element  children []Element  tag string}func SubElement(parent *Element, tag string) Element {  el := Element{}  el.parent = parent  el.tag = tag  parent.children = append(parent.children, el)  return el}func (el Element) String() string {  s := "<" + el.tag + ">"  for _, child := range el.children {    s += child.String()  }  s += "</" + el.tag + ">"  return s}func main() {  root := Element{}  root.tag = "root"  a := SubElement(&root, "a")  b := SubElement(&a, "b")  SubElement(&b, "c")  fmt.Println(root) // prints: <root><a></a></root>  fmt.Println(a) // prints: <a><b></b></a>  // and so on}我遇到的问题是,我选择打印的根节点中只有第一层子级可用。我确定它与对parent.children使用append有关,但是缺乏对如何正确解决此问题的理解。要变通解决此问题,我更改children为map[int]Element。然后,在我的SubElement函数中,我用追加parent.children[len(parent.children)] = el。然后以正确的顺序进行迭代,String方法for循环为for i:= 0; i < len(el.children); i++,访问el.children[i]。不过,我想知道如何使用数组正确执行此操作。谢谢
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信