是否可以在不使用嵌入結構的情況下繼承某個類型的方法?
討論圍繞使用嵌入結構來訪問另一種類型的方法的概念。作者指出,嵌入結構會迫使他們在初始化包含結構時初始化嵌入的結構,他們覺得這很麻煩。他們提供了程式碼範例來演示該問題,並表達了他們避免顯式初始化嵌入結構的願望。
此回應解決了在沒有嵌入結構的情況下阻止繼承的技術限制。它解釋了只有透過嵌入才能將方法從一種類型提升到另一種類型。 Go 規範被引用為權威,指出結構體的方法集僅包含以該結構體作為接收者類型聲明的方法。
回應然後深入研究進入提升欄位的概念,這些欄位是可以透過包含結構直接存取的匿名嵌入結構的欄位。但是,提升的欄位不能在複合文字中使用,在建立包含嵌入式匿名欄位的結構時需要明確初始化。
答案承認使用嵌入式結構的局限性和Go 中缺乏直接繼承機制。它強調使用嵌入式結構的主要原因是促進方法而不是資料字段,因為可以透過組合來存取資料。
響應幽默地以個人問候結束作者 Jeff,引用了先前的交互。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3