Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengelakkan Pengulangan Kod untuk Fungsi dengan Medan Kongsi di Golang?

Bagaimana untuk Mengelakkan Pengulangan Kod untuk Fungsi dengan Medan Kongsi di Golang?

DDD
DDDasal
2024-10-27 07:50:31863semak imbas

How to Avoid Code Repetition for Functions with Shared Fields in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn