Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Memulakan Parameter Fungsi Go Menggunakan Nama Medan?

Bagaimanakah Saya Boleh Memulakan Parameter Fungsi Go Menggunakan Nama Medan?

Linda Hamilton
Linda Hamiltonasal
2024-12-15 04:22:13654semak imbas

How Can I Initialize Go Function Parameters Using Field Names?

Mulakan Medan Fungsi dalam Go

Dalam Go, tidak mungkin untuk menentukan parameter yang dinamakan semasa memanggil fungsi. Sebaliknya, hujah mesti disenaraikan dalam susunan yang dijangkakan. Walau bagaimanapun, terdapat dua pendekatan untuk mencapai pemulaan menggunakan nama medan:

Menggunakan Struct

Kaedah yang paling langsung adalah untuk mentakrifkan struct yang merangkumi parameter fungsi dan menghantar contoh struct kepada fungsi:

type Params struct {
    Name    string
    Address string
    Nick    string
    Age     int
    Value   int
}

func MyFunction(p Params) {
    // Operations using p.Name, p.Address, etc.
}

func main() {
    MyFunction(Params{
        Name:    "Bob",
        Address: "New York",
        Nick:    "Builder",
        Age:     30,
        Value:   1000,
    })
}

Menggunakan Fungsi Pembantu

Jika mengubah suai fungsi asal tidak boleh dilaksanakan, fungsi pembantu boleh dibuat yang menerima struct dan memajukan nilai medan yang sesuai kepada fungsi asal:

func MyFunction(name, address, nick string, age, value int) {
    // Operations using name, address, etc.
}

func MyFunction2(p Params) {
    MyFunction(p.Name, p.Address, p.Nick, p.Age, p.Value)
}

func main() {
    MyFunction2(Params{
        Name:    "Bob",
        Address: "New York",
        Nick:    "Builder",
        Age:     30,
        Value:   1000,
    })
}

Kedua-dua kaedah membolehkan anda memulakan parameter fungsi menggunakan nama medan, menawarkan kefleksibelan dan kebolehbacaan kod dipertingkatkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Parameter Fungsi Go Menggunakan Nama Medan?. 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