Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencipta Set Bendera Bebas dalam GoLang untuk Subperintah?

Bagaimana untuk Mencipta Set Bendera Bebas dalam GoLang untuk Subperintah?

Linda Hamilton
Linda Hamiltonasal
2024-12-09 20:38:10812semak imbas

How to Create Independent FlagSets in GoLang for Subcommands?

Set Bendera Bebas dalam GoLang

Pengenalan:

Set Bendera dalam Go menyediakan mekanisme untuk menentukan dan menghuraikan bendera baris arahan. Walaupun dokumentasi mencadangkan keupayaan untuk mencipta set bebas untuk melaksanakan subperintah dalam antara muka pengguna, ia masih tidak jelas bagaimana untuk mencapai fungsi ini dalam amalan.

Soalan:

Bagaimana bolehkah kita menentukan FlagSets bebas dalam GoLang untuk menyokong subperintah dalam baris perintah antara muka?

Jawapan:

Membezakan Antara Subperintah

Untuk mencapai FlagSets bebas, perbezaan utama terletak pada mengenal pasti subperintah sebelum menghuraikan bendera. Begini caranya:

1. Cipta FlagSets:

Tentukan beberapa FlagSets, satu untuk setiap subperintah.

f1 := flag.NewFlagSet("f1", flag.ContinueOnError)
reset := f2.Bool("reset", false, "")

2. Bezakan Subperintah:

Periksa argumen baris perintah untuk mengenal pasti subperintah aktif. Contohnya, jika awalan perintah ialah "apply", laksanakan FlagSet "f1".

switch os.Args[1] {
  case "apply":
    f1.Parse(os.Args[2:])
  case "reset":
    f2.Parse(os.Args[2:])
}

Dengan memisahkan penghuraian FlagSets yang berbeza berdasarkan subperintah, kami boleh mengekalkan set bebas bendera yang digunakan sahaja kepada subperintah masing-masing.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Set Bendera Bebas dalam GoLang untuk Subperintah?. 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