我在列表中存储了一组字符串。我遍历列表以与字符串"[the]"
进行比较。
当我使用函数strings.EqualFold
时,它会出现此错误:
不能在函数参数中使用e.Value(type interface {})作为类型字符串:need type assertion
代码如下:
for e := l.Front(); e != nil; e = e.Next() {
if(strings.EqualFold("[the]", e.Value)){
count++
}
}
答案 0 :(得分:5)
由于Go的链接列表实现使用空interface{}
来存储列表中的值,您必须使用type assertion,如错误指示访问您的值。
因此,如果在列表中存储string
,则从列表中检索值时,必须键入断言值为字符串。
for e := l.Front(); e != nil; e = e.Next() {
if(strings.EqualFold("[the]", e.Value.(string))){
count++
}
}
答案 1 :(得分:2)
从“e.Value”换掉“e.Value。(string)”。