Go语言中的单例模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言中的单例模式相关的知识,希望对你有一定的参考价值。
单例模式
使用单例的目的是为了保证在整个系统中存在唯一的实例
package main
import (
"fmt"
"sync"
)
type IntAndString struct {
num int32
str string
}
var m *IntAndString
var once sync.Once
func GetInstance() *IntAndString {
once.Do(func() {
m = &IntAndString{num:1, str:"fdjkslf"}
})
return m
}
func (m *IntAndString) String() {
fmt.Printf("int %v, string %v
", m.num, m.str)
}
func main() {
tmp := GetInstance()
tmp.String()
tmp.str = "hello"
tmp1 := GetInstance()
tmp1.String()
tmp.String()
}
运行结果
int 1, string fdjkslf
int 1, string hello
int 1, string hello
以上是关于Go语言中的单例模式的主要内容,如果未能解决你的问题,请参考以下文章
单例设计模式原理详解Java/JS/Go/Python/TS不同语言实现