Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mencapai Permulaan Medan Dinamakan dalam Panggilan Fungsi Go?
Permulaan Medan Dinamakan dalam Fungsi
Apabila mentakrifkan fungsi dalam Go, adalah amalan biasa untuk menentukan parameter menggunakan jenis masing-masing. Walau bagaimanapun, untuk kebolehbacaan dan kejelasan, kadangkala adalah wajar untuk memulakan medan fungsi menggunakan nama mereka.
Malangnya, Go tidak menyokong pemulaan medan dinamakan secara langsung dalam panggilan fungsi. Sebaliknya, nilai mesti disediakan dalam susunan yang dijangkakan.
Untuk mengatasi had ini, pertimbangkan pendekatan berikut:
Menggunakan Struktur
A penyelesaian biasa adalah untuk mencipta struct yang merangkum medan fungsi. Ubah suai fungsi untuk menerima penunjuk kepada struct, seperti yang dilihat dalam contoh berikut:
import "fmt" type Params struct { name string address string nick string age int value int } func MyFunction(p *Params) { // Perform operations here fmt.Printf("%s lives in %s.\n", p.name, p.address) } func main() { params := Params{ name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000, } MyFunction(¶ms) }
Menggunakan Fungsi Pembantu
Pendekatan alternatif ialah mencipta fungsi pembungkus yang menerima medan yang dinamakan dan secara dalaman memanggil fungsi asal dengan parameter yang sesuai. Pertimbangkan coretan kod berikut:
import "fmt" func MyFunction(name, address, nick string, age, value int) { // Perform operations here fmt.Printf("%s lives in %s.\n", name, address) } func MyFunction2(p Params) { MyFunction(p.name, p.address, p.nick, p.age, p.value) } func main() { params := Params{ name: "Alice", address: "Washington", } MyFunction2(params) }
Kesimpulannya, sementara Go tidak secara langsung menyokong pengamulaan medan bernama dalam panggilan fungsi, menggunakan struct atau mencipta fungsi pembantu boleh menyediakan penyelesaian untuk situasi khusus ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Permulaan Medan Dinamakan dalam Panggilan Fungsi Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!