当前位置:  开发笔记 > 编程语言 > 正文

检查接口{}的相等性

如何解决《检查接口{}的相等性》经验,为你挑选了1个好方法。

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

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

在琐碎的情况下,类型是int.但是,如果,例如,类型是一些自定义,我该怎么办struct



1> Brian..:

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

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

关于interface{}s和structs:

接口值具有可比性.如果两个接口值具有相同的动态类型和相等的动态值,或者两者的值都为nil,则它们相等.

当类型X的值可比较且X实现T时,非接口类型X的值x和接口类型T的值t是可比较的.如果t的动态类型与X相同并且t的动态值等于x,则它们相等. .

如果所有字段都具有可比性,则结构值可比较.如果相应的非空白字段相等,则两个结构值相等.

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

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有