Go使用命令行参数报错:flag provided but not defined: -xxxxx

使用命令行传递参数,提示:

1
flag provided but not defined: -xxxxx'

错误。

原因是把 flag.Parse() 调用放在了获取参数之前。应该在获取参数之后调用flag.Parse()

1
2
3
4
5
6
7
8
9
10
11
import (
"flag"
"fmt"
)

func main() {
username := flag.String("username", "defaultName", "username")
// 放在获取参数之后
flag.Parse()
fmt.Println("username=", *username)
}