golang flag and config
ddatsh
flag欠缺的
与命令行Parser的事实标准:Posix getopt(C/C++/Perl/Shell脚本都可用)相比,还有较大差距
- 无法区分 long option 和 short option,如:-h 和 –help
- 不支持short options合并,如:ls -l -h <=> ls -hl
- 位置不能任意放置,如无法放在 non-flag parameter 后面
一个良好的应用配置层次
- 程序内置初始默认值
- 配置文件的配置项值可覆盖(override)程序内置默认值
- 命令行选项和参数值具有最高优先级,可以override前两层的值
TOML,Go配置文件的事实标准(可能不能得到认同)
Java 配 xml,ruby 配 yaml,windows 配 ini,Go 的搭配组合,TOML
|
|
配置文件可直接解析成一个golang struct
|
|
|
|
toml 欠缺的
- 映射结果体字段没有初始值
- 内建flag包没有将命令行参数值解析为一个go结构体,而是零散的变量