【问题标题】:Using record type for program parameters对程序参数使用记录类型
【发布时间】:2017-04-18 15:51:26
【问题描述】:

假设我在这样的记录类型中有一组程序参数:

type Parameters = {Name : string; Number : int ...}

另外,假设我最初是从 CLI 参数或数据库调用或任何东西填充它的,真的。

后面在程序中,发现要添加到Parameters的附加信息。我的问题是,我可以(我应该吗?最佳实践是什么)用某种类型的 TBD 参数定义我的参数。例如

type Parameters {...;TBD : Dictionary<string, string> }

这样当我启动时,我可以填写我拥有的参数(第一次设置),然后,当 TBD 事情变得已知时,将其添加到参数中?

这有意义吗?这是正确的方法还是我完全错过了更好的方法?

【问题讨论】:

    标签: types parameters f# record


    【解决方案1】:

    我认为您应该首先以最简单的方式做事,在这种情况下,我确信这意味着继续使用带有普通字段的记录,例如您问题中的第一个源代码行。在 F# 中,这将使您毫不费力地走很长一段路。如果在任何时候配置变得庞大,并且您觉得需要更高级的东西来应对它,那么您可以考虑进行更改。

    【讨论】:

      【解决方案2】:

      一般可区分联合适用于参数/参数。看看ArguCommandLine(即使只是为了设计,我也不建议它符合您的需求)。这假设您可以提前定义参数空间并且它保持固定。

      如果您事先不知道参数,您仍然可以定义默认记录,并在可用时使用with 更新字段。如有必要,您可以在那里使用 Some/None。但是,如果您甚至不知道参数名称(即它将是记录中的一个新字段),我会选择字典/映射本身,因为您不断添加新的键值条目,这就是参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 2013-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-03
        • 2011-01-02
        相关资源
        最近更新 更多