Golang设计模式之单例

Jackey Golang 2,439 次浏览 , , 没有评论
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("不等")
    }
}

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Go