Menghuraikan Nilai Senarai ke dalam Bendera dalam Go
Dalam Go, yang setara dengan argparse Python ialah pakej bendera. Walaupun jenis bendera terbina dalam hanya menyokong rentetan, integer dan boolean, adalah mungkin untuk menentukan jenis bendera tersuai untuk menampung senarai nilai.
Jenis Bendera Tersuai untuk Senarai
Untuk menentukan jenis bendera tersuai untuk nilai senarai, laksanakan antara muka flag.Value dalam jenis baharu, seperti arrayFlags. Kaedah String() menyediakan perwakilan rentetan senarai, dan kaedah Set() mengemas kini senarai dengan nilai baharu.
Mengikat Bendera Tersuai
Sebaik sahaja anda telah menentukan jenis bendera tersuai, anda boleh menggunakan flag.Var() untuk mengikatnya pada bendera. Ini membolehkan anda menghantar berbilang nilai untuk bendera itu semasa masa jalan.
Contoh Penggunaan
Berikut ialah contoh cara menggunakan jenis bendera tersuai untuk senarai:
package main import ( "flag" "fmt" ) type arrayFlags []string func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } func (i *arrayFlags) Set(value string) error { *i = append(*i, value) return nil } var myFlags arrayFlags func main() { flag.Var(&myFlags, "list1", "Some description for this param.") flag.Parse() fmt.Println(myFlags) // Prints [value1 value2] }
Menjalankan kod ini dengan arahan berikut akan menghuraikan nilai senarai ke dalam myFlags pembolehubah:
go run your_file.go --list1 value1 --list1 value2
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Nilai Senarai ke dalam Bendera dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!