6cf6f95f58
CodeQL / Analyze (push) Has been cancelled
Sync to Gitee / Run (push) Has been cancelled
Go / build & test (1.25.x) (push) Has been cancelled
Go / build & test (1.26.x) (push) Has been cancelled
Lint / resolve module (push) Has been cancelled
Lint / lint module (push) Has been cancelled
43 lines
678 B
Go
43 lines
678 B
Go
package group
|
|
|
|
import "fmt"
|
|
|
|
type Counter struct {
|
|
Value int
|
|
}
|
|
|
|
func (c *Counter) Incr() {
|
|
c.Value++
|
|
}
|
|
|
|
func ExampleGroup_Get() {
|
|
group := NewGroup(func() any {
|
|
fmt.Println("Only Once")
|
|
return &Counter{}
|
|
})
|
|
|
|
// Create a new Counter
|
|
group.Get("pass").(*Counter).Incr()
|
|
|
|
// Get the created Counter again.
|
|
group.Get("pass").(*Counter).Incr()
|
|
// Output:
|
|
// Only Once
|
|
}
|
|
|
|
func ExampleGroup_Reset() {
|
|
group := NewGroup(func() any {
|
|
return &Counter{}
|
|
})
|
|
|
|
// Reset the new function and clear all created objects.
|
|
group.Reset(func() any {
|
|
fmt.Println("reset")
|
|
return &Counter{}
|
|
})
|
|
|
|
// Create a new Counter
|
|
group.Get("pass").(*Counter).Incr()
|
|
// Output:reset
|
|
}
|