Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mencapai Permulaan Medan Dinamakan dalam Panggilan Fungsi Go?

Bagaimanakah Saya Boleh Mencapai Permulaan Medan Dinamakan dalam Panggilan Fungsi Go?

Patricia Arquette
Lepaskan: 2024-12-13 05:35:09
asal
499 orang telah melayarinya

How Can I Achieve Named Field Initialization in Go Function Calls?

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(&params)
}
Salin selepas log masuk

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

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!

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