关于结构体定义方法定义 Retriever 和 *Retriever

来源:6-3 接口的定义和实现

qq_聪明的剑圣_0

2020-11-16

图片描述
看本节视频无意间发现 IDE有 Retriever 和 *Retriever, 请问老师两者区别在哪里,有哪些使用注意事项?

写回答

1回答

ccmouse

2020-11-16

区别和一般的函数参数是不是指针一样。如果不用指针,这里的Retriever只是一份拷贝。

一是如果这个方法改变了Retrieveer里面字段的值,就一定要用指针。否则只是改变了Retriever的拷贝的值。

还有是如果Retriever比较大,使用指针效率会高些,因为可以不用拷贝。

而且所有的方法我们建议要么都用指针要么都不用指针。

实际使用的时候,一般我们无脑的使用指针总没错,除非特殊情况,我们定义了一些复合“值”类型,比如Point(有x,y两个字段)

0
3
ccmouse
回复
慕数据24389432
地道的来说,如果只读的,“小”的结构体,不推荐使用指针。无脑使用指针只是属于“无错”的做法。
2021-06-27
共3条回复

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

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

5995 学习 · 1909 问题

查看课程