package main
import (
"fmt"
"sync"
)
type Single struct {
Data int
}
var singleton *Single
var once sync.Once // 内核信号,时时刻刻只能运行一个
func GetInterface() *Single {
once.Do(func() {
singleton = &Single{100}
})
return singleton
}
func main() {
i1 := GetInterface()
i2 := GetInterface()
if i1 == i2 {
fmt.Println("相等")
} else {
fmt.Println("不等")
}
}