অস্থির না:

mu := new(sync.Mutex)
mu.Lock()

প্রসারণ:

var mu sync.Mutex
mu.Lock()

যদি আপনি একটি স্ট্রাকচারের পয়েন্টার ব্যবহার করেন, তবে মিউটেক্সটি স্ট্রাকচারের একটি নন-পয়েন্টার ফীল্ড হতে হবে। যদি স্ট্রাকচারটি না এক্সপোর্ট করা হয়, তবে স্ট্রাকচারে মিউটেক্স প্রত্যাগ সরাসরি এমবেড করা না।

অস্থির না:

type SMap struct {
  sync.Mutex

  data map[string]string
}

func NewSMap() *SMap {
  return &SMap{
    data: make(map[string]string),
  }
}

func (m *SMap) Get(k string) string {
  m.Lock()
  defer m.Unlock()

  return m.data[k]
}
// মিউটেক্স ফিল্ড, লক, এবং আনলক মেথডগুলি SMap এক্সপোর্ট করা API এর একটি অংশ হলে পূর্বনির্ধারিত ঘোষণা ছাড়া।

প্রসারণ:

type SMap struct {
  mu sync.Mutex

  data map[string]string
}

func NewSMap() *SMap {
  return &SMap{
    data: make(map[string]string),
  }
}

func (m *SMap) Get(k string) string {
  m.mu.Lock()
  defer m.mu.Unlock()

  return m.data[k]
}
// মিউটেক্স এবং তার মেথডগুলি SMap এর অঙ্গিকृত বিবরণ এবং তার কলারদের দৃশ্যমান না।