golang - 同步映射访问中的结构

我正在尝试加载在同步映射中任意定义的结构类型数据。是否有任何便捷的方法可以通过定义(如泛型、sync.Map[struct]{})来访问地图类型?


package main


import (

    "sync"

)


type mystruct struct {

    cnt int

}


func (m *mystruct) Add() {

    m.cnt++

}

func main() {


    m := sync.Map{}

    m.Store("a", &mystruct{1})

    m.Store("b", &mystruct{1})


    v, _ := m.Load("a")

    v.Add() // i know v.(*mystruct).Add() will solve problem. but is that really only solution?

}

https://go.dev/play/p/vme7Zuw-raB


汪汪一只猫
浏览 55回答 1
1回答

大话西游666

但这真的是唯一的解决方案吗?是的。或者等待 Go 1.18 并将 sync.Map 包装在一个通用容器中。
打开App,查看更多内容
随时随地看视频慕课网APP