Bagaimana untuk Mencipta Jenis Bendera Tersuai untuk Mengendalikan Argumen Senarai di Golang?

Mary-Kate Olsen
Lepaskan: 2024-11-17 20:30:02
asal
738 orang telah melayarinya

How to Create Custom Flag Types to Handle List Arguments in Golang?

Cara Menentukan Jenis Bendera Tersuai untuk Mengendalikan Argumen Senarai di Golang

Modul argparse Python menawarkan argumen nargs untuk menentukan bilangan nilai kepada dihuraikan apabila berurusan dengan senarai. Pakej bendera Golang, sambil menyokong jenis asas, tidak menyediakan cara langsung untuk menerima senarai. Begini cara untuk menentukan jenis bendera anda sendiri untuk menangani isu ini:

Mencipta Jenis Bendera Tatasusunan Tersuai:

Atur cara Golang boleh mencipta jenis bendera mereka sendiri dengan melaksanakan bendera .Antara muka nilai. Kod berikut mentakrifkan jenis arrayFlags untuk mengendalikan tatasusunan rentetan:

type arrayFlags []string

// String implements the flag.Value interface to convert the flag value to a string
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set implements the flag.Value interface to update the flag value when a new argument is provided
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}
Salin selepas log masuk

Menggunakan Jenis Bendera Tersuai:

Untuk menggunakan jenis bendera tatasusunan, anda boleh gunakan fungsi flag.Var(). Berikut ialah contoh:

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
}
Salin selepas log masuk

Menghuraikan Berbilang Bendera:

Anda boleh menghantar berbilang bendera seperti ini:

go run your_file.go --list1 value1 --list1 value2
Salin selepas log masuk

Pembolehubah myFlags akan kini mengandungi nilai yang dihantar ke bendera list1, memberikan anda akses kepada senarai nilai.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jenis Bendera Tersuai untuk Mengendalikan Argumen Senarai di Golang?. 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