Ben Golang yeni am yapısına bir nil işaretçi panik.başlatmak için nasıl üye
başka bir fonksiyonu kullanılarak ve onu arayarak etrafında çalıştıksağ new()
sonra:
func (m *SyncMap) Init() {
m.hm = make(map[string]string)
m.lock = new(sync.RWMutex)
}
Ama bu mümkün olmazsa, acaba bu klişe seçin Başlatma kurtulmak için?
Çok teşekkürler! Şimdi hatırlıyorum, öğreticide kurucu hakkında bir şey vardı, ama, bir Java müthiş, ben yeni operatör ile ilgili olması gerektiğini düşündüm, yeni değil ... kod kuralı –
Bu işe yaramaz, ama en iyi tavsiye değildir. RWMutex bir işaretçi olarak değil, bir değer olarak dahil edilmelidir. Sıfır değeri kullanıma hazır bir mutekstir ve bu şekilde açık bir yapıcı işlevinden kaçınabilirsiniz. – kelnos
Sadece bir örnek olduğundan farklı isimler almalıydı. Göreceğiniz gibi, orijinal yapının parçası olmayan 'foo' alanını da başlatıyorum. ;) – Mue