6
arasındaki ortak alanları nasıl ele: Git - İki türleri varsa yapı tipleri
type A struct {
X int
Y int
}
type B struct {
X int
Y int
Z int
}
iki yöntem gerek kalmadan aşağıdaki ulaşmak için herhangi bir yolu göz önüne alındığında, var mı hem erişim alanlarını aynı adlı ve dönmek olduğunu bunların toplamı?
func (a *A) Sum() int {
return a.X + a.Y
}
func (b *B) Sum() int {
return b.X + b.Y
}
Elbette X ve Y yöntemleriydi, bu iki yöntemi içeren bir arabirim tanımlayabilirim. Alanlar için bir analog var mı?
A'yı B'ye doğrudan yerleştirmekten ziyade A'ya A işaretçisini yerleştirmeyi neden seçtiğinizi merak ediyorum. Paylaşmak için dikkat etmek ister misiniz? – carbocation
@jpp: Sadece OP bir gösterici alıcı üzerinde bir yöntem vardı, bu yüzden daha açık olacağını düşündüm. Ayrıca bazı durumlarda, B 'bir işaretçi yerine bir değer ise ve bir arabirim olarak geçilmeye çalışılırsa, bir fark yaratır: http://play.golang.org/p/k2e5saB7OI Ancak Bu örnek verilen olası görünmüyor. –