繁体   English   中英

在Go中调用接口指针的方法

[英]Calling methods on interface pointers in Go

我仍然在围绕Go中的接口和指针的细节包裹。 我遇到了一个包含指向net.Conn的指针的简单类型的问题。 当我尝试在指针上调用方法(Close)时,我收到type *net.Conn has no field or method Close

这是一个突出问题的简单例子: http//play.golang.org/p/Q4LB0wi6Tk

在这里调用Close()的正确方法是什么?

简短的回答是“不要使用指向接口的指针”。 几乎没有任何需要它们,你最终会遇到像你看到的令人困惑的错误。

您也永远不会使用new()来创建指向空接口的指针。 具体类型隐含地满足接口。

net.Conn是一个小(双字)结构。 如果实现是一个指针,那么持有该实现的net.Conn也就像一个指针。 有关接口如何工作的说明,请参见http://research.swtch.com/interfaces

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM