标志:自动否定
Negatable Flag with `--no-` prefix
Negatable 自动否定
常规方式
一个带有自动否定风格的标志 --warning
,自动配套一个反向标志 --no-warning
。
两个标志的作用是相反的。
cmdr 将会为 --warning
自动生成一个隐性的标志对象 --no-warning
,从而支持对两者的正确解析。
如果终端用户输入了 --no-warning
,则相应的 Store 条目 app.cmd.no-warning
会被置为 true
,同时 --warning
对应的条目 app.cmd.warning
将被置为 false
;反之亦然。
在内部,这两条标志被隐性地组织为一个 Toggleable Group,从而具有自动翻转的效果。
通常来说,带有自动否定风格的标志必须具有 bool 默认值。
-W
风格
这一特性自 v2.1.16 开始加入。
一个具有 -W
风格的自动否定标志,允许你指定一组条目作为其后缀。
cmdr 将会为这些后缀自动建立一对正反对应的可翻转标志,例如 --warnings.unused-variable
/-Wunused-variable
和 --warnings.no-unused-variable
/-Wno-unused-variable
。如是类推之。
熟悉 gcc 开发的你将会对此毫无意外,这种 -W
风格几乎完全模仿 gcc -Waddress -Wno-address
标志风格。
你所需要做的只是声明一个主条目,然后在 .Negatable(true, ...)
调用中插入需要拓展的子条目项。
定义
.Negatable(true).Default(false)
可以为标志设置 Negatable 风格。
.Negatable(true, "a","b","c").Default(false)
可以为标志设置 -W
Style Negatable 风格。
运行时
上面的示例程序的运行时效果如同这样:
额外的话题
How is this guide?
Last updated on