这里我们在运行pRoot.setValue(200)的时候,它首先把这句话Setting value to nil node.打出来,然后继续运行19行,此时node是nil,就造成了panic。就是说这个panic发生在pRoot.setValue(200),而不是发生在pRoot.setValue(300)
明白了,理了一下,当 var a *treeNode时,这时 *treeNode 里的value也变成了一个*value,也就是如果在初始化时没有赋值时,那么 a.value 的结果就是 nil(因为a.*value不存在,指针指向空地址) ,而nil可以被传入setValue(因为是一个指针接收函数),但在进行a.value = value 操作时会panic。