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

DDD
Lepaskan: 2024-10-27 07:50:31
asal
871 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!