// Package util ... // // Author : go_developer@163.com<白茶清欢> // // Date : 1:53 下午 2021/8/14 package util import "flag" // cli 命令行操作相关 // // Author : go_developer@163.com<白茶清欢> // // Date : 13:48 2022/5/14 type cli struct { } // ParseCLIParameter 解析命令含参数 // // Author : go_developer@163.com<白茶清欢> // // Date : 1:54 下午 2021/8/14 func (c *cli) ParseCLIParameter(parameterNameList []string) map[string]string { cliParameterTable := make(map[string]*string) for _, parameterName := range parameterNameList { var val string flag.StringVar(&val, parameterName, "", parameterName) cliParameterTable[parameterName] = &val } // 这里有一个非常中的操作,转换,必须调用该方法 flag.Parse() formatTable := make(map[string]string) for k, v := range cliParameterTable { formatTable[k] = *v } return formatTable } // ParseCLIParameterWithDefaultValue 解析命令行参数,并提供可选的默认值 // // Author : go_developer@163.com<白茶清欢> // // Date : 1:55 下午 2021/8/14 func (c *cli) ParseCLIParameterWithDefaultValue(parameterParseTable map[string]string) map[string]string { cliParameterTable := make(map[string]*string) for parameterName, defaultValue := range parameterParseTable { cliParameterTable[parameterName] = flag.String(parameterName, defaultValue, parameterName) } // 这里有一个非常中的操作,转换,必须调用该方法 flag.Parse() formatTable := make(map[string]string) for k, v := range cliParameterTable { formatTable[k] = *v } return formatTable }