go 中sync.Map怎么知道里面存的是什么类型,怎么转换?

c:=cronMap
m :=sync.Map{}
m.Store("2222",&c)
v,ok:=m.Load("ddd")

sync.Map不像map,我们定义map的时候还可以定义类型,比如map[string]string ,但
sync.Map 拿出来的类型未知,是一个any类型,怎么搞呢?比如上面的代码,我虽然知道那是一个struct,但代码怎么把v这个any类型强转成我需要的cronMap类型?

阅读 4.5k
1 个回答

Type assertions

val := v.(cronMap) // 这个转换不了会 panic 。
val, ok := v.(cronMap) // 这个转换不了不会 panic ,ok 返回转换是否成功
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题