有关于最下面:pRoot 第一个setValue(200)的时候, 演示了 pRoot 是 nil 的情况。老师可否麻烦讲的详细些~

来源:4-1 结构体和方法

Leo_2000

2021-06-28

Q1
有关于最下面:
pRoot 第一个setValue(200)的时候,
演示了 pRoot 是 nil 的情况。老师可否麻烦讲的详细些呢?

抱歉老师
这边方法来方法去
指针来指针去
取地址来取地址去
思想有点混乱了 …

Q2
请问以下的理解是否正确恰当呢?
xxx.yyy() 最简单的理解就是,xxx 作为 yyy() 方法的参数 是吗 ?

	//pRoot := &root
	//注意 *  &
	var pRoot *treeNode // nil
	root.print()        // print  100

	/* 第一个setValue(200)的时候,
	我们演示了 pRoot 是 nil 的情况。
	我们这个判断抓住的是setValue(200)这一句的错。
	Setting value to nil node. Ignored.   */
	pRoot.setValue(200)
	pRoot = &root // print

	pRoot.setValue(300)
	pRoot.print() // print 300

結果如下 ↓

node.value 100
Setting value to nil node. Ignored.
node.value 300
写回答

1回答

ccmouse

2021-06-30

xxx.yyy() 最简单的理解就是,xxx 作为 yyy() 方法的参数 是吗 ?是的。这是非常关键的点。

//img.mukewang.com/szimg/60dc60cb092987e309840284.jpg

所以这么理解的话,就相当于这个setValue有两个参数,第一个是node,第二个是value。当然,node是nil的话就进了这个if语句。


1
1
Leo_2000
非常感谢!
2021-07-13
共1条回复

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

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

5995 学习 · 1909 问题

查看课程