ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

golang sync.map包

2019-08-26 22:51:47  阅读:414  来源: 互联网

标签:map ok key fmt sync value golang sm


sync.Map详解

sync.Map是1.9才推荐的并发安全的map。

package main

import (
	"fmt"
	"sync"
)

func main() {
	var sm sync.Map
	//Store函数添加元素
	sm.Store(1, "a")
	//Load函数获得value
	if v, ok := sm.Load(1); ok {
		fmt.Println(v)
	}
	/*
		LoadOrStore函数获取或者添加。
		参数是key,value。
		如果该key存在且没有被标记删除则返回原先的value(不更新)和true。
		不存在则store,返回该value 和false。
	*/
	if v, ok := sm.LoadOrStore(1, "b"); ok {
		fmt.Println(v)
	}
	if v, ok := sm.LoadOrStore(2, "c"); !ok {
		fmt.Println(v)
	}
	//删除
	sm.Delete(1)
	//遍历,参数为函数。函数参数为key value返回值为bool,荡返回false遍历停止
	sm.Range(func(k, v interface{}) bool {
		fmt.Printf("key=%d,value=%s\n", k, v)
		return true
	})
	//sync.map暂时不支持len参数,获取长度需要遍历,比较复杂。
	// fmt.Println(len(sm))
}

  

标签:map,ok,key,fmt,sync,value,golang,sm
来源: https://www.cnblogs.com/lemonzwt/p/11415553.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有