新手对interface的疑惑
某DN上看到个帖子
blog.csdn.net/weixin_34185512/arti...
换句话说,接口类型本身就是一个指针。
那我定义一个func,怎么能实现必须传某个接口的指针
呢?
如:
type i1 interface {
print()
}
type v1 struct{}
func (v *v1) print() {
fmt.Println(v)
}
// 疑问
func showV(v *i1) {} // <- 怎么能够限制必须传指针 showV **必须** 要实现对v的修改必须要影响外部
像 showV
现在必须传指针是可以实现的,因为有v1的func (v *v1)
的限制。
但是如果像是团队开发,A定义的一个interface,B定义的一个func,这个func必须要能修改。然后C再用个struct实现接口还不传指针如func (v v1)
就完事了。那这个约束是不是就不能实现了。
自问自答