接触 golang 不久,感觉这个语法用起来跟其他语言相比麻烦不少。。。。
使用 sync.map 存储 slice 切片的数据,代码如下
curSliceI, ok := syncMap.Load(curKey)
curSlice:= curSliceI.([]int)
curSlice:= append(curSlice, curId)
golang 官方 sync.map 的 Load 方法返回的是两个参数,curSliceI 是 interface 类型,ok 是 bool 类型代表是否成功
这样的话还要多写一行来做类型转换来拿到 value,有没有啥方法可以简写成一行直接拿值,做类型转换的。。。。
而且这个 interface 类型的 curSliceI, 如果为空的话,做类型转换还会 panic 报错,还要像下面这样来再
做一次判断,有没有啥简便的写法么?
curSlice, ok := curSliceI.([]int)
if !ok {
fmt.Println("It's not ok for type")
return
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.