扩展已有类型报错:panic: runtime error: invalid memory address or nil pointer dereference

来源:4-3 扩展已有类型

慕粉4124437

2021-02-08

go version
go version go1.13.4 darwin/amd64

//entry.go
package main

import (
“fmt”
“learngo/tree”
)

type myTreeNode struct {
*tree.Node
}

func (myNode *myTreeNode) postOrder() {
if myNode == nil && myNode.Node == nil {
return
}
left := myTreeNode{myNode.Left}
right := myTreeNode{myNode.Right}
left.postOrder()
right.postOrder()
myNode.Print()
}

func main() {
root := myTreeNode{&tree.Node{Value: 3}}
root.Left = &tree.Node{}
root.Right = &tree.Node{Value: 5}
root.Right.Left = &tree.Node{Value: 5}
root.Left.Right = &tree.Node{Value: 5}
root.Traverse()
fmt.Println()
root.postOrder()
}

//node.go
package tree

import “fmt”

type Node struct {
Value int
Left, Right *Node
}

func Created(value int) *Node {
return &Node{Value: value}
}

func (node *Node) Updated(value int) {
node.Value = value
}

func (node *Node) Print() {
fmt.Println(node.Value)
}

func (node *Node) Traverse() {
if node == nil {
return
}
node.Left.Traverse()
node.Print()
node.Right.Traverse()
}

写回答

1回答

ccmouse

2021-02-09

这个问题可以看一下他报的是第几行,然后那边加个断点进行单步跟踪

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程