实现者Retriever指针和调用者取地址的问题

来源:6-4 接口的值类型

举止优雅的橘

2020-08-23

Retriever  定义为指针后,后面&real.Retriever取地址后调用才可以,而不是类似于4-1里讲到的setValue那里设置指针后,调用时不需要&取地址可以正常调用,这中间的差别请问是不是因为前面var r Retriever的限定的原因?来来回回这块看了几遍都没明白为什么要取地址

写回答

1回答

ccmouse

2020-08-25

其实这里需要用指针是对的。真正的问题应该是前面的SetValue为啥可以不用指针。答案是:不用指针只是个语法糖,这样写出来的代码好看些。
用不用指针,主要是在实现方法的时候,接收者这边一定要写对。调用方法的时候无所谓,编译能过就行。比如SetValue这里,系统会自动取地址进行调用

0
0

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

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

5995 学习 · 1909 问题

查看课程