Mentakrifkan Set Bendera Bebas dalam GoLang
Jenis FlagSet dalam GoLang memberi kuasa kepada pembangun untuk mentakrifkan set bendera yang berbeza. Ciri ini terbukti amat berguna apabila melaksanakan subperintah dalam antara muka baris arahan. Walau bagaimanapun, persoalan timbul: bagaimanakah kita boleh mencapai pemisahan ini dengan berkesan?
Set Bendera Bebas dalam Amalan
Untuk mewujudkan FlagSets berautonomi, adalah penting untuk membezakan antara subperintah dan seterusnya menggunakan Parse pada FlagSet yang sepadan. Pertimbangkan contoh yang dipertingkatkan berikut:
f1 := flag.NewFlagSet("f1", flag.ContinueOnError) silent := f1.Bool("silent", false, "") f2 := flag.NewFlagSet("f2", flag.ContinueOnError) loud := f2.Bool("loud", false, "") switch os.Args[1] { case "apply": if err := f1.Parse(os.Args[2:]); err == nil { fmt.Println("apply", *silent) } case "reset": if err := f2.Parse(os.Args[2:]); err == nil { fmt.Println("reset", *loud) } }
Dalam kod ini, kami mentakrifkan dua FlagSets, satu untuk perintah apply dan satu lagi untuk arahan set semula. Pernyataan suis mengenal pasti subperintah dan memanggil Parse pada FlagSet yang ditetapkan, dengan berkesan mengasingkan bendera untuk setiap arahan.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan dan Menggunakan FlagSets Bebas dalam Go for Subcommands?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!