design-patterns - 如何从命令行参数建模全局状态?
问题描述
我正在解析参数,clap
但是在解析这些参数后我应该如何构建我的程序有点困惑:
我发现我需要一个来自命令行的参数——--verbose
例如标志——所以我把它拉出来,现在有一个模拟这个的布尔值,然后我最终将该布尔值传递给我的所有函数. 它永远不会改变。
然后我将在命令行中引入一个新参数,我希望多个函数也可以访问这些变量。因此,现在我将 clap 转换为.get_matches()
代表配置的结构,最后将该结构传递给我的所有函数。它永远不会改变。
我知道我们不想要全局可变状态。但是,是否有一个通用的习惯用法来处理仅在参数解析之后才发生变异的全局状态?此外,是否有关于如何处理verbose
标志之类的东西的指导?我是否需要明确地将其传递给每个函数?
我认为上述链接的问题不能回答这个问题,因为我不确定我需要全局可变状态。评论,
默认情况下确实存在不建议,但在用于像选项程序这样的良好用例时不会,这显然是可以的。– Stargateur 15 分钟前
更多的是问题。什么定义了“OK 层”?例如,如果 main 出现在 Tokio 二进制文件中,它是“OK Tier”吗?这样做有什么安全问题?为了存储启动状态并使其全局可用,编译器是否提供了其他一些方法来改变变量?
解决方案
推荐阅读
- python - 如何在 pydantic/fast API 中使用日志记录
- jestjs - 升级到 Agora SDK NG - 版本 4.0.1 后,Jest 失败
- python - 您如何计算数据框中的这种差异?
- ios - 在 iOS 14 小部件中实现图像过渡动画
- r - ggplot2 — 有什么方法可以自动在同一个散点图上绘制不同的转换后的-y,对你来说?
- python - Django CORS 标头未按文档中的建议工作
- nodes - 如何以编程方式在多个地址部署 Solidity 智能合约?
- swift - 在 RealityKit 中导入多个 .usdz 对象并为其设置动画
- jenkins - 在 shell 中访问 groovy 变量并对它们执行算术运算
- json - 颤振:异常 DioError [DioErrorType.DEFAULT]:类型“字符串”不是“地图”类型的子类型
'