登录
首页 >  Golang >  Go问答

golang 中的 bag:处理字符串和类型不匹配的问题

来源:stackoverflow

时间:2024-02-16 23:18:23 135浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《golang 中的 bag:处理字符串和类型不匹配的问题》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

不要问我为什么要这样做,只要告诉我这是怎么可能的:

gopls 错误:字符串和字符串类型不匹配

type mapsi2[t string | int | float32 | float64] struct {
    keys   []string
    values []t
}

func (mapsi mapsi2[string]) setvalue(key string, value string) {
    for i, keymapsi := range mapsi.keys {
        if key == keymapsi {
            mapsi.values[i] = value
        }
    }
}

一开始我以为lsp服务器很蠢,但事实证明并非如此。

出现错误:字符串和字符串类型不匹配

go run ./cmd/app
# devllart/foobarman/src/mapsi
src/mapsi/mapsi.go:48:13: invalid operation: key == keyMapsi (mismatched types string and string)
make: *** [Makefile:6: run] Error 2

我用谷歌搜索,在搜索结果中,只有将指针与字符串进行比较时出现错误...就在那里,类型一切正常,或者我错了。


正确答案


您的方法签名应为 func (mapsi Mapsi2[T]) SetValue(key string, value T)

与您的编译问题无关,但请注意:

  • 您可能想使用指针接收器,以便更改在方法调用之外持续存在
  • 您可能还想处理找不到密钥的情况

在操场上查看:https://go.dev/play/p/YBcVn_EKXQe一个>.

今天关于《golang 中的 bag:处理字符串和类型不匹配的问题》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>