Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah saya boleh beralih secara dinamik melalui kaedah dalam pakej Go untuk kalkulator?

Bagaimanakah saya boleh beralih secara dinamik melalui kaedah dalam pakej Go untuk kalkulator?

DDD
Lepaskan: 2024-11-16 20:38:03
asal
266 orang telah melayarinya

How can I dynamically iterate through methods in a Go package for a calculator?

Lelaran Melalui Pakej Secara Dinamik

Masalah:

Seorang pengaturcara Go dengan latar belakang dalam Python menghadapi verbositi semasa mencipta kalkulator mudah dengan fungsi yang boleh dikembangkan (penambahan, penolakan, dll.). Mereka mencari cara untuk mengubah secara dinamik semua kaedah dalam pakej kalkulator mereka untuk memudahkan kod dan menambah ciri dengan mudah.

Respons:

Go tidak menawarkan mekanisme yang mudah. untuk introspeksi pakej atau beralih secara dinamik melalui kandungannya. Pengkompil hanya termasuk fungsi dan pembolehubah dalam boleh laku yang dirujuk secara langsung. Fungsi yang tidak pernah dipanggil akan diketepikan.

Penyelesaian Alternatif:

Daripada beralih secara dinamik melalui pakej, anda boleh mempertimbangkan untuk mencipta tatasusunan yang mengandungi objek jenis yang anda mahu untuk beroperasi. Ini membolehkan anda mengulangi set operasi kalkulator yang dipratentukan:

type Calc interface {
    First(x int) int
    Second(x int) int
}

calculator := []Calc{
    &calculator.Add{},
    &calculator.Sub{},
    &calculator.Mul{},
    &calculator.Div{},
}

for _, calc := range calculator {
    x := 10
    fmt.Println(calc.First(x))
    fmt.Println(calc.Second(x))
}
Salin selepas log masuk

Dengan menggunakan tatasusunan, anda boleh lelaran melalui kaedah kalkulator tertentu tanpa perlu mengintrospeksi pakej secara dinamik. Susunan kaedah dilaksanakan juga ditakrifkan terlebih dahulu.

Atas ialah kandungan terperinci Bagaimanakah saya boleh beralih secara dinamik melalui kaedah dalam pakej Go untuk kalkulator?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan