为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以覆盖标志值?

是否可以覆盖标志值?

Go
MYYA 2021-09-21 22:50:01
我想知道是否可以在运行时覆盖标志值。例子:main.go 导入一个包 pkg.go。pkg.go 使用一个标志(“-myFlag”),但存储标志的标识符没有被导出。是否可以更改 pkg.go 从 main.go 接收的“-myFlag”的标志值?用例:我正在使用一个使用glog来记录错误的库。glog 使用标志来定义写入日志的位置,默认情况下它将日志写入文件。我使用的环境不允许写入文件系统,也不允许在应用程序初始化时设置标志,因此我需要以某种方式覆盖/设置 glog 标志,以便我可以将其设置为将错误写入 stderr。
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

你可以这样做flag.Set("flagname", "whatever")

或者,如果您想对该选项执行其他操作(检查默认值,查看它是否已更改等),您可以使用f := flag.Lookup("flagname")然后f.Value.Set("whatever")(以及其他方法)。

在任何一种情况下,flag.FlagSet如果您需要在flag.CommandLine集合以外的东西上使用它,都有匹配的方法。

Playground example


查看完整回答
反对 回复 2021-09-21
  • 1 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信