Go語言中的單例模式
阿新 • • 發佈:2018-06-14
syn main 單例模式 return and type KS int pack 單例模式
使用單例的目的是為了保證在整個系統中存在唯一的實例
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\n", 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語言中的單例模式