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

检查接口是否相等{}

苏宏逸
2023-03-14
问题内容

我正在搜索[]interface{}一个给定interface{}值的切片:

var v interface{}
for i := 0; i < len(A); i++ {
  if (A[i] == v) {
    fmt.Println("Gotcha!")
    break
  }
}

在普通情况下,类型为int。但是,例如,如果类型是一些自定义的,该struct怎么办?


问题答案:

感谢@CodingPickle评论,我提供了Go编程语言规范中的以下内容

等号运算符==和!=适用于可比较的操作数。

关于interface{}s和structs

  • 接口值是可比较的。如果两个接口值具有相同的动态类型和相等的动态值,或者两个接口值都为nil,则它们相等。
  • 当类型X的值可比较并且X实现T时,非接口类型X的值x和接口类型T的值t可比较。如果t的动态类型等于X并且t的动态值等于x,则它们相等。 。
  • 如果结构的所有字段都是可比较的,则它们的值是可比较的。如果两个结构值对应的非空白字段相等,则它们相等。

您也可以尝试这个游乐场https://play.golang.org/p/bgO1_V87v9k

换句话说,在Go中处理平等似乎很容易!



 类似资料:
  • 我在TypeScript中使用一个接口来定义一个函数,该函数仅在扩展基类的一些类上可用。这是我到目前为止的代码的简化版本: 现在,问题是我会添加更多的“行走”动物,这样移动动物的功能就会变得太大而无法控制。我想做的事情是这样的: 但是,“implements”检查不起作用,在使用接口时,我找不到与“instanceof”等效的。在Java中,“instanceof”的使用似乎可以在这里使用,但Ty

  • 问题内容: 所以我在Java中有这个课程: 在这个类中,我想知道T是否实现某些接口。 以下代码不起作用,但这是我要完成的工作的主意: 所以我想检查传递给Foo 的类是否具有其签名。 可能吗?怎么样? 问题答案: 奇怪的是,泛型也用于接口。1您将要使用: 这实际上是实现的要求, 而不是true / false check 。 为了进行真/假检查,请使用无限制的generics()并确保获得a,以便您

  • 问题内容: 在Python中,有没有办法来检测是否给定 的网络接口 是 向上 ? 在我的脚本中,用户指定了一个网络接口,但在执行其他操作之前,我想确保该接口已启动并且已分配IP地址。 我在 Linux上 并且我是 root 。 问题答案: 如@Gabriel Samfira所建议,我使用。当IP地址与给定接口关联时,以下函数返回True。 文档在这里

  • 问题内容: 我已经读过“ EffectiveGo”和其他类似的问答:golang接口符合性编译类型检查,但是我仍然无法正确理解如何使用此技术。 请参见示例: 如果实现了接口,是否有任何简单的方法(例如,不使用反射)检查值? 问题答案: 如果您不知道值的类型,则只需检查值是否实现了接口。如果类型已知,则该检查由编译器自动完成。 如果您仍然想进行检查,则可以使用您提供的第二种方法进行检查: 在编译时会

  • 问题内容: 如何检查某个类是否实现接口?当有: 如何检查是否实现接口? 该方法是否被正确覆盖,因此可以返回新创建的方法? 问题答案: 对于一个实例 然后做 对于Class实例

  • 好了, 我有一个标记接口: 然后我有一个类实现这个接口: 现在假设我有一个持有类MePOJO的引用: 那么,我如何通过使用来确定类是否实现了?