我正在搜索[]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,则它们相等. .
如果所有字段都具有可比性,则结构值可比较.如果相应的非空白字段相等,则两个结构值相等.
换句话说,在Go中处理平等似乎很容易!