首页 > 后端开发 > Golang > 也许是 golang 中的 bag(类型字符串和字符串不匹配)

也许是 golang 中的 bag(类型字符串和字符串不匹配)

WBOY
发布: 2024-02-09 08:06:18
转载
405 人浏览过

也许是 golang 中的 bag(类型字符串和字符串不匹配)

php小编新一为您介绍golang中的bag类型。在golang中,bag类型指的是一种数据结构,用于存储元素的集合。与其他数据结构不同的是,bag中的元素可以重复出现,并且顺序无关紧要。这意味着,bag类型在处理不需要顺序的情况下非常有用,比如计算元素的频次或者判断元素是否存在。需要注意的是,bag类型与字符串类型在golang中并不匹配,因此在使用过程中需要注意类型转换的问题。

问题内容

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

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://www.php.cn/link/6934456f54af5ab56c6f347c6427afeb一个>.

以上是也许是 golang 中的 bag(类型字符串和字符串不匹配)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
lsp
来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板