go - 无法将 nil 转换为类型 x

标签 go

考虑以下示例:

    lock.RLock()
    var product *Product
    if store[productId] != nil {     //cannot convert nil to type Product
        product = &Product{}
        *product = *store[productId] //invalid indirect of store[productId] (type Product)
    }
    lock.RUnlock()

异常是每行注释的,我真的不明白我做错了什么..

store 是一个 map[int]Product

有什么想法吗?

最佳答案

您正在使用 store 就好像它被声明为:

store := make(map[int]*Product)

关于go - 无法将 nil 转换为类型 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24719221/

相关文章:

dictionary - 为什么 map 中没有键

go - 检查纬度/经度点是否在区域内

javascript - Jquery Ajax 不会返回数据(解析错误),但 Postman 成功

Golang 通过 JSON 标签获取结构体的字段名

go - go 中输入字节 0 处的非法 base64 数据

go - 在golang html模板中转义'to'

struct - 如何检查空结构?

go - 将 Windows 64 (TDM-GCC-64) 上的 Go 交叉编译为 .linux 文件,但尽管 GOOS=linux 仍继续编译为 .exe 文件

go - 使用 robotsgo 进行桌面自动化,在 Windows 10 上构建失败

tomcat - 在go中解析tomcat日志文件的时间戳