package main import ( "fmt" "sync" ) type Info struct { info map[int]string mu sync.RWMutex } func main() { x := &Info{info: make(map[int]string)} x.Set(1,"golang") s := x.Get(1) fmt.Println(s) } func (s *Info) Get(i int) string { s.mu.RLock() info := s.info[i] s.mu.RUnlock() return info } func (s *Info) Set(i int,name string) bool { s.mu.Lock() defer s.mu.Unlock() _,present := s.info[i] if present { return false } s.info[i] = name return true }
原文地址:https://www.jb51.cc/go/190402.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。