【发布时间】:2016-03-18 16:31:01
【问题描述】:
我正在为给定的interface{} 值搜索[]interface{} 切片:
var v interface{}
for i := 0; i < len(A); i++ {
if (A[i] == v) {
fmt.Println("Gotcha!")
break
}
}
在普通情况下,类型是int。但是,例如,如果类型是一些自定义 struct,我该怎么办?
【问题讨论】:
-
如果结构是comparable,那么代码将照常工作。
-
对此进行扩展,引用@CodingPickle 的链接文档:
Interface values are comparable. Two interface values are equal if they have identical dynamic types and equal dynamic values or if both have value nil.
标签: go types interface equality