要遍历所有urfave/cli的标志位,可以使用urfave/cli的FlagNames()函数来获取所有标志位的名称列表,然后使用循环遍历该列表,并根据标志位名称获取每个标志位的值。
以下是一个示例代码:
package main
import (
"fmt"
"github.com/urfave/cli"
"os"
)
func main() {
app := cli.NewApp()
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "name",
Value: "John",
Usage: "your name",
},
cli.IntFlag{
Name: "age",
Value: 25,
Usage: "your age",
},
}
app.Action = func(c *cli.Context) error {
// 遍历所有标志位
for _, name := range app.FlagNames() {
value := c.String(name)
fmt.Printf("Flag: %s, Value: %s\n", name, value)
}
return nil
}
app.Run(os.Args)
}
在上面的示例中,我们定义了两个标志位:name
和age
。然后,在应用程序的Action函数中,我们使用app.FlagNames()
函数获取所有标志位的名称列表,并使用循环遍历该列表。对于每个标志位名称,我们使用c.String(name)
函数获取该标志位的值,并打印出来。
当我们运行上面的示例程序,并指定不同的标志位值时,它将遍历所有标志位并打印出每个标志位的名称和值。
例如,我们可以运行以下命令来指定name
和age
的值:
go run main.go --name Alice --age 30
输出将是:
Flag: name, Value: Alice
Flag: age, Value: 30
下一篇:遍历所有网页链接并再次导航