Home > Backend Development > Golang > How to Define and Use Independent FlagSets in Go for Subcommands?

How to Define and Use Independent FlagSets in Go for Subcommands?

Linda Hamilton
Release: 2024-12-09 02:26:09
Original
611 people have browsed it

How to Define and Use Independent FlagSets in Go for Subcommands?

Defining Independent FlagSets in GoLang

The FlagSet type in GoLang empowers developers to define distinct sets of flags. This feature proves particularly useful when implementing subcommands in a command-line interface. However, the question arises: how can we effectively achieve this separation?

Independent FlagSets in Practice

To establish autonomous FlagSets, it's crucial to distinguish between subcommands and subsequently invoke Parse on the corresponding FlagSet. Consider the following enhanced example:

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)
    }
}
Copy after login

In this code, we define two FlagSets, one for the apply command and another for the reset command. The switch statement identifies the subcommand and invokes Parse on the designated FlagSet, effectively isolating the flags for each command.

The above is the detailed content of How to Define and Use Independent FlagSets in Go for Subcommands?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template