Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengelakkan Pengulangan Kod untuk Fungsi dengan Medan Kongsi di Golang?
Mengelakkan Pengulangan Kod untuk Fungsi dengan Medan Dikongsi di Golang
Untuk mengelakkan pertindihan kod apabila menulis fungsi untuk berbilang struct dengan medan yang sama, pertimbangkan pendekatan berikut:
Daripada mentakrifkan fungsi berasingan untuk setiap struct, buat jenis tersuai untuk medan kongsi, seperti rentetan Versi. Jenis ini boleh bertindak sebagai penerima kaedah untuk fungsi yang anda ingin laksanakan.
<code class="go">type Version string func (v Version) PrintVersion() { fmt.Println("Version is", v) }</code>
Dalam struct anda, masukkan jenis tersuai sebagai medan menggunakan gubahan:
<code class="go">type Game struct { Name string MultiplayerSupport bool Genre string Version } type ERP struct { Name string MRPSupport bool SupportedDatabases []string Version }</code>
Sekarang, anda boleh mengakses dan mencetak medan Versi daripada kedua-dua struct menggunakan kaedah yang dilampirkan pada jenis tersuai:
<code class="go">func main() { g := Game{ "Fear Effect", false, "Action-Adventure", "1.0.0", } g.PrintVersion() // Version is 1.0.0 e := ERP{ "Logo", true, []string{"ms-sql"}, "2.0.0", } e.PrintVersion() // Version is 2.0.0 }</code>
Pendekatan ini membolehkan anda mengelakkan pengulangan kod sambil mengekalkan keupayaan untuk mencetak medan Versi daripada struct yang berbeza. Dengan mentakrifkan fungsi sebagai kaedah jenis tersuai, anda memastikan pelaksanaan yang sama digunakan untuk semua struct yang membenamkan jenis tersebut.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Pengulangan Kod untuk Fungsi dengan Medan Kongsi di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!