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)) }
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!