别问我为什么要这么做,只要告诉我怎么可能:

gopls error: mismatched types string and string

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 error: mismatched types string and string

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.

Go相关问答推荐

如何在另一个文件夹中使用Delve运行二进制文件?

Go协议缓冲区导入问题

macOS上GoLand 2023.3.4中的代码导航

GORM没有从 struct 创建完整的表,如何修复?

在整个SQL事务中将使用上下文作为默认设置吗?

从带有嵌套括号的字符串中提取值

如何模拟 stripe 需要 webhooks 的捕获事件?

Go安装成功但没有输出简单的Hello World

从 ApiGateway 中的 lambda Go 返回 Json

用 fork 替换 Go 依赖:...用于两个不同的模块路径

使用goroutines在Golang中验证 struct

Golang 通过接口反映/迭代{}

Go gmail api 快速入门导致本地主机拒绝连接 ERR_CONNECTION_REFUSED

从动态输入中提取字符串,其中部分字符串可能不存在

从 Makefile 运行时权限被拒绝

使用 AppID 在 Windows 中启动应用程序并获取 pid

vs 代码调试 go 测试不通过标志

golang 如何从字符串中查找表情符号?

如何迭代在泛型函数中传递的片的并集?

Gorilla/Mux 和 Websocket 竞赛条件,这安全吗?