package main import "fmt" var singleton *Singleton type Singleton struct { Count int } func GetSingleton() *Singleton { if singleton == nil { singleton = &Singleton{} return singleton } return singleton } func main() { GetSingleton().Count += 1 fmt.Println(GetSingleton().Count) GetSingleton().Count += 1 fmt.Println(GetSingleton().Count) } output: 1 2