Golang patterns
From wikinotes
Some design pattern implementations in go
Singleton
// threadsafe // src: https://medium.com/golang-issue/how-singleton-pattern-works-with-golang-2fdd61cd5a7f var once sync.Once // type global type singleton map[string]string var ( instance singleton ) func NewClass() singleton { once.Do(func() { // <-- atomic, does not allow repeating instance = make(singleton) // <-- thread safe }) return instance }