gpt4 book ai didi

go - 为什么 FlagSet 不能正确解析这些参数?

转载 作者:IT王子 更新时间:2023-10-29 01:36:55 27 4
gpt4 key购买 nike

这是一个简化的代码片段:在一个真实的项目中,我有一个命令行应用程序解析输入到程序的参数,然后在命令名称被拉出后解析剩余参数的各个命令.我在每个命令中使用了一个 FlagSet,但出于某种原因,它不会真正解析出标志:

package main

import (
"fmt"
"flag"
)

func main() {
args := []string{"arg", "-flag", "value"}
flags := flag.NewFlagSet("flags", flag.ExitOnError)
flagValue := flags.String("flag", "defaultValue", "")

flags.Parse(args)
fmt.Println(flags.Args(), *flagValue)

}

我希望输出是:[arg] 值,但我得到的是:[arg -flag 值] defaultValue

代码:http://play.golang.org/p/D4RKPpVODF

我在这里做错了什么?

最佳答案

args 数组中的参数顺序错误。非标志参数必须在标志参数之后。所以你应该写:

args := []string{"-flag", "value", "arg"}

那么输出就是你所期望的:

[arg] value

代码:http://play.golang.org/p/cv972SLZfG

关于go - 为什么 FlagSet 不能正确解析这些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com