为了账号安全,请及时绑定邮箱和手机立即绑定

GO:从列表中输入断言

GO:从列表中输入断言

Go
茅侃侃 2021-09-13 14:22:16
我在列表中存储了一组字符串。我遍历列表以与 string 进行比较"[the]"。当我使用该函数时strings.EqualFold,它会出现此错误:不能在函数参数中使用 e.Value (type interface {}) 作为类型字符串:需要类型断言代码如下:for e := l.Front(); e != nil; e = e.Next() {        if(strings.EqualFold("[the]", e.Value)){            count++        }    }
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

由于 Go 的链表实现使用空interface{}来存储列表中的值,因此您必须使用类型断言(如错误指示)来访问您的值。


因此,如果您将 a 存储string在列表中,那么当您从列表中检索值时,您必须键入 assert 该值是一个字符串。


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

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

        count++

    }

}


查看完整回答
反对 回复 2021-09-13
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

从“e.Value”交换“e.Value.(string)”。


查看完整回答
反对 回复 2021-09-13
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信