GO:从列表中输入断言

我在列表中存储了一组字符串。我遍历列表以与 string 进行比较"[the]"。


当我使用该函数时strings.EqualFold,它会出现此错误:


不能在函数参数中使用 e.Value (type interface {}) 作为类型字符串:需要类型断言


代码如下:


for e := l.Front(); e != nil; e = e.Next() {

        if(strings.EqualFold("[the]", e.Value)){

            count++


        }

    }


茅侃侃
浏览 167回答 2
2回答

呼如林

由于 Go 的链表实现使用空interface{}来存储列表中的值,因此您必须使用类型断言(如错误指示)来访问您的值。因此,如果您将 a 存储string在列表中,那么当您从列表中检索值时,您必须键入 assert 该值是一个字符串。for e := l.Front(); e != nil; e = e.Next() {    if(strings.EqualFold("[the]", e.Value.(string))){        count++    }}

慕标琳琳

从“e.Value”交换“e.Value.(string)”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go