go - Golang:忽略标志参数的位置
问题描述
这是我学习 Python 几个月后与 Go 的第一次互动。我正在构建一个简单的实用程序,它接受命令行参数并返回结果。
list := flag.Bool("list", false, "List existing URLs")
url := flag.String("lu", "", "original URL including https:// or http://")
然后我有逻辑来检查输入:
if *url == "" && *list == false {
fmt.Println("Provide correct input values")
flag.PrintDefaults()
os.Exit(1)
} else if *list == true && *url != "" {
fmt.Println("Choose either -list or -lu")
flag.PrintDefaults()
os.Exit(1)
} else if *url == "" && *list == true {
fmt.Println("Only listing URLs")
listUrls()
} else if *url != "" && *list == false {
fmt.Println("Your URL: ", Url)
}
我的问题是当我执行
go run main.go -list true -lu http://google.com
它返回 URL 列表,但是当我运行时
go run main.go -lu http://google.com -list true
它返回
Choose either -list or -lu
我错过了一些明显的东西吗?似乎它关心论点的顺序,但我找不到任何证实它的东西。
解决方案
推荐阅读
- python - Python paho-mqtt 连接到 MQTT 代理
- java - 处理 - 渲染形状太慢
- javascript - Function clearing the div in vertical tabs not working
- eclipse - 需要创建 SVN 存储库并集成到 eclipse 中。
- mysql - 无法设置 IdentityUser 上的外键
- java - 内部带有同步块的静态方法,阻塞了java中的整个类?
- javascript - 在数组中过滤数组
- javascript - 尝试以更优雅的方式编写此内容。我可以在这个函数中使用三元吗?
- f#-data - Json Provider 失败,路径中有非法字符
- java - javax.ws.rs.client.WebTarget POST 并同时获取响应