我建议结合sync.Map存储键值和sync.Once值内部来执行一次性初始化。这是一个例子:type Value struct { init sync.Once someValue string}func (v *Value) Init() { v.init.Do(func() { // This function will only be executed one time v.someValue = "initialized" })}func main() { var m sync.Map v1, _ := m.LoadOrStore("key", &Value{}) v1.(*Value).Init() // init function is called v2, _ := m.LoadOrStore("key", &Value{}) v2.(*Value).Init() // init function is not called}