当前位置: 首页 > 面试题库 >

确保类型在Go中的编译时实现接口

何高歌
2023-03-14
问题内容

如何确保类型在编译时实现接口?这样做的典型方法是失败地分配该类型的支持接口,但是我有几种类型只能动态转换。在运行时,这会生成非常粗糙的错误消息,而没有给出针对编译时错误的更好诊断。在运行时发现我期望支持接口的类型也很不方便,实际上却不支持。


问题答案:

假设问题是关于围棋的,例如

var _ foo.RequiredInterface = myType{} // or &myType{} or [&]myType if scalar

因为顶级域名(TLD)会在编译时为您检查。



 类似资料:
  • 问题内容: 例如下面的示例: DO 和两个满足,即使一个是一个指针,另一个是直接一个结构? 问题答案: 通过编译代码很容易得到答案: 该错误是基于以下规格要求: 接收器类型必须采用T或 T的形式,其中T是类型名称。用T表示的类型称为接收方基本类型; 它不能是指针或接口类型* ,并且必须在与方法相同的包中声明。 (强调我的) 声明: 声明一个 指针 类型,即 没有资格作为方法接收者。

  • 主要内容:结构体实现接口,函数体实现接口,HTTP包中的例子函数和其他类型一样都属于“一等公民”,其他类型能够实现接口,函数也可以,本节将对结构体与函数实现接口的过程进行对比。 首先给出本节完整的代码: 有如下一个接口: 这个接口需要实现 Call() 方法,调用时会传入一个 interface{} 类型的变量,这种类型的变量表示任意类型的值。 接下来,使用结构体进行接口实现。 结构体实现接口 结构体实现 Invoker 接口的代码如下: 代码说明如下:

  • 问题内容: 我有一个对象。我想确定对象表示的类型是否实现特定的接口。我想知道如何实现? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将添加实现接口的Class对象添加到我的地图。问题是将一个对象作为参数。我无法实例化接口。所以我对此感到茫然。有任何想法吗? 问题答案: 您应该使用:

  • 我有一个对象。我想确定对象表示的类型是否实现了特定的接口。我想知道这是如何实现的? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将实现接口的类对象添加到映射中。问题在于将对象作为参数。我无法实例化接口。所以我有点不知所措。有什么想法吗?

  • 问题内容: 首先,我阅读了埃里克森对“为什么不能在Java接口中定义静态方法?”的有用答复。。这个问题不是关于“为什么”的问题,而是关于“然后如何做”的问题。 编辑:我的原始示例不适当地,但我将其保留在下面。 虽然我现在确信在大多数情况下我想做的是过度矫kill过正,但在一种情况下可能需要这样做: 我再举一个例子。现在,让我们采用一个适合于查找表的复杂功能,例如Bessel函数。这必须进行初始化,