将参数作为接口传递[重复]
Posted
技术标签:
【中文标题】将参数作为接口传递[重复]【英文标题】:Passing a parameter as an interface [duplicate] 【发布时间】:2020-12-20 01:11:51 【问题描述】:在 Go 中,当您将参数传递给采用接口的函数时,究竟会发生什么?具体是引用传递还是值传递?
【问题讨论】:
go 中的一切都是按值传递的,包括指针。 Go 中没有“按引用传递”。 【参考方案1】:如果您将接口值传递给采用接口的函数,则它会被传递而无需任何进一步处理。
如果您将值传递给采用接口的函数,编译器会创建该值的副本,然后创建一个包含指向该副本的指针和值的类型的接口,并传递它。
如果将指针传递给接受接口的函数,编译器会创建一个包含该指针和类型的接口作为指向值的指针并传递它。
【讨论】:
那么传递的版本是在运行时确定的? 不,它是在编译时完成的。编译器知道传递了什么。以上是关于将参数作为接口传递[重复]的主要内容,如果未能解决你的问题,请参考以下文章