忽略旗帜案例

bui*_*tro 1 go

无论如何都要忽略Go标志的大小写(不区分大小写)?

我想让我的程序尽可能宽容和用户友好.

 dbType := flags.String( "dbType", "", "The `dbType` to deploy. )
Run Code Online (Sandbox Code Playgroud)

如果用户输入以下任何内容,我希望初始化此标志的值:

 -dbtype
 -dbType
 -DBTYPE
Run Code Online (Sandbox Code Playgroud)

不幸的是,对于这个项目,我只能使用该flag库.

hls*_*lon 5

Go标志区分大小写,因此默认情况下您无法执行所需操作.但是您可以设置允许用户输入的值,并让它们指向同一个变量,即:

const dbTypeUsage = "The `dbType` to deploy."

var dbType string
flag.StringVar(&dbType, "dbType", "", dbTypeUsage)
flag.StringVar(&dbType, "DBTYPE", "", dbTypeUsage)
flag.StringVar(&dbType, "DBType", "", dbTypeUsage)
flag.StringVar(&dbType, "dbtype", "", dbTypeUsage)
...
Run Code Online (Sandbox Code Playgroud)