今天在github上看到一个项目里面list的一个Contains方法.
func (list *List) Contains(values ...interface{}) bool {
for _, searchValue := range values {
found := false
for _, element := range list.elements {
if element == searchValue {
found = true
break
}
}
if !found {
return false
}
}
return true
}
我之前对两个interface判定是否相等都是先做类型断言,然后转换成具体的类型再判定是否相等。这里直接做“element == searchValue”会不会有什么问题?另外,如果实现了接口T的类型X的值一个x,和接口T的值t用“==”比较是否可行呢?
有疑问加站长微信联系(非本文作者)