32 lines
501 B
Go
32 lines
501 B
Go
package main
|
||
|
||
import "fmt"
|
||
|
||
/*
|
||
* 饿汉模式
|
||
* 在类加载时就初始化对象
|
||
*/
|
||
|
||
// 构建一个结构体,用来实例化单例
|
||
type example2 struct {
|
||
name string
|
||
}
|
||
|
||
// 声明一个私有变量,作为单例
|
||
var instance2 *example2
|
||
|
||
// init函数将在包初始化时执行,实例化单例
|
||
func init() {
|
||
instance2 = new(example2)
|
||
instance2.name = "初始化单例模式"
|
||
}
|
||
|
||
func GetInstance2() *example2 {
|
||
return instance2
|
||
}
|
||
|
||
func main() {
|
||
s := GetInstance2()
|
||
fmt.Println(s.name)
|
||
}
|