代码之家  ›  专栏  ›  技术社区  ›  Aaron Yodaiken

在Go中接口到底是如何工作的?

go
  •  1
  • Aaron Yodaiken  · 技术社区  · 15 年前

    在阅读了规范和关于它们的“有效Go”部分之后,我仍然不太理解Go中的接口是如何工作的。

    为初学者的问题道歉;但我真的很难理解这一点。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Simon Zimmermann    15 年前

    在上有一些关于接口的好帖子 Russ Cox Ian Lance Taylor's

    我认为一个很好的概念性例子是 net 包裹。在那里你会发现一个连接接口( Conn TCPConn ,的 UnixConn ,和 UDPConn . Go-pkg源代码可能是Go语言的最佳文档。

        2
  •  3
  •   Amber    15 年前

    type InterfaceNameHere interface {
        MethodA(*arg1, *arg2)
        MethodB(*arg3)
    }
    

    特定的接口定义要求实现接口的任何东西都同时具有 MethodA 方法,该方法接受2个参数和 MethodB 接受1个参数的方法。

    一旦您定义了它,当您尝试使用某个需要某个接口的东西时,Go将自动检查您正在使用的东西是否满足该接口。您不必显式地声明一个给定的东西满足一个给定的接口,当您试图在一个预期满足它的场景中使用某个东西时,它会自动地被检查。