go flag参数 类似Java main 的args
两部分内容
go run test1.go aa -name 123
1. 解析:aa -name 123
2. 解析:name =123
代码
package main
import (
"log"
"os"
)
func main() {
log.Println("main ...")
if len(os.Args) > 0 {
for index, arg := range os.Args {
log.Println(index, arg)
}
}
log.Println("success ..")
}
输出:
****\src> go run .\test1.go aa bb cc
2025/02/17 11:36:26 main ...
2025/02/17 11:36:26 0 C:\Users\****emp\go-build445\b001\exe\test1.exe
2025/02/17 11:36:26 1 aa
2025/02/17 11:36:26 2 bb
2025/02/17 11:36:26 3 cc
2025/02/17 11:36:26 success ..
package main
import (
"flag"
"log"
"os"
)
func main() {
log.Println("main ...")
// 打印的是test1.go -name 1223 两个参数-name,1223
if len(os.Args) > 0 {
for index, arg := range os.Args {
log.Println(index, arg)
}
}
// 1. help信息
//go run .\test1.go -help
// -name string
// help info (default "defaultValue")
// 2. name命令 go run .\test1.go -name 1223
// name为1223 是解析后的数据
name := flag.String("name", "defaultValue", "help info")
flag.Parse()
log.Println("name:", *name)
log.Println("success ..")
}
参考
https://www.topgoer.com/%E5%B8%B8%E7%94%A8%E6%A0%87%E5%87%86%E5%BA%93/flag.html
https://studygolang.com/pkgdoc