首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法添加Go的sync.Map加载结果

无法添加Go的sync.Map加载结果
EN

Stack Overflow用户
提问于 2018-06-15 03:58:59
回答 1查看 894关注 0票数 0

我只是想在sync.Map上做一些简单的创建或添加

代码语言:javascript
复制
gore> :import sync
gore> var sm sync.Map
gore> sm.Store(12345,1)
gore> result, ok := sm.Load(12345)
1
true
gore> newr := result +1
# command-line-arguments
/var/folders/kl/n95_c8j15wn1784jmsq08mq80000gn/T/112740772/gore_session.go:21:17: invalid operation: result + 1 (mismatched types interface {} and int)
error: exit status 2
exit status 2

result是爬虫上的1,但不能用1添加

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 04:37:10

Go程序设计语言规范 类型断言 对于接口类型的表达式x和类型T的表达式,主表达式 十.(T) 断言x不是零,存储在x中的值是T类型,符号x.(T)称为类型断言。

错误消息告诉所有人:

代码语言:javascript
复制
invalid operation: result + 1 (mismatched types interface {} and int)

result类型interface {}上为int使用类型断言

代码语言:javascript
复制
package main

import (
    "fmt"
    "sync"
)

func main() {
    var sm sync.Map
    sm.Store(12345, 1)
    result, ok := sm.Load(12345)
    fmt.Println(result, ok)
    newr := result.(int) + 1
    fmt.Println(newr)
}

操场:https://play.golang.org/p/qotBVR4fSNV

输出:

代码语言:javascript
复制
1 true
2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50868909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档