go语言结构体定义使用

时间:2022-05-06
本文章向大家介绍go语言结构体定义使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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  
 
}