# gosingleton **Repository Path**: mytxd/gosingleton ## Basic Information - **Project Name**: gosingleton - **Description**: Go语言的单例模式的实现 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-10-23 - **Last Updated**: 2020-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gosingleton A simple singleton library for Golang project # Usage ## install ``` go get github.com/mytxd/gosingleton ``` ## example ``` package main import ( "fmt" singleton "github.com/mytxd/gosingleton" ) // define the working type type Person struct { Name string Age int8 } func main() { // register the type with a name: "person" singleton.RegisterType("person", singleton.GetTypeInfo(Person{})) // get the zero value of specified type vf := singleton.GetInstance("person") v, ok := vf.(*Person) if !ok { fmt.Printf("Error when check type") return } fmt.Printf("%v\n", v) v.Name = "fuck" v.Age = 100 fmt.Printf("%v\n", v) vh := singleton.GetInstance("person") v, ok = vh.(*Person) if !ok { fmt.Printf("Error when check type") return } fmt.Printf("%v\n", v) } ```