理解 Go 中的接口实现检查
在 Go 中,确定一个值是否实现了一个接口对于初学者来说可能是一项令人困惑的任务。本文旨在通过示例来阐明该过程。
为什么要使用接口实现检查?
通常,编译器会根据已知的值自动执行接口实现检查类型。但是,当处理未知类型的值时,有必要手动检查接口是否已实现。
示例代码分析
考虑以下示例:
方法一:带类型断言switch
在第一次尝试中,类型 switch (_(Somether)) 用于检查值 val 是否实现接口 Somether。然而,这种方法需要类型切换,这可能不是最佳的。
方法 2:分配给空接口
第二种方法使用空接口:
此技术将 MyType 类型的指针分配给空接口变量。如果 MyType 实现 Somether,则代码将顺利编译。然而,由于它没有,将会抛出一个编译时错误,表明 MyType 没有实现 Somether。
接口实现检查的简单性
这很重要请注意,这些检查主要在值的类型未知时使用。当类型已知时,编译器会自动验证接口实现。
以上是如何检查 Go 中的接口实现?的详细内容。更多信息请关注PHP中文网其他相关文章!