Types 对程序参数使用记录类型

Types 对程序参数使用记录类型,types,parameters,f#,record,Types,Parameters,F#,Record,假设我有一组记录类型的程序参数,如下所示: type Parameters = {Name : string; Number : int ...} 另外,假设我最初是通过CLI参数或DB调用或其他任何方式填充它 在程序的后面,会发现我要添加到参数中的其他信息。我的问题是,我可以吗?最佳做法是使用某种类型的TBD参数定义我的参数。e、 g type Parameters {...;TBD : Dictionary<string, string> } 这样,当我启动时,我可以填写我第

假设我有一组记录类型的程序参数,如下所示:

type Parameters = {Name : string; Number : int ...}
另外,假设我最初是通过CLI参数或DB调用或其他任何方式填充它

在程序的后面,会发现我要添加到参数中的其他信息。我的问题是,我可以吗?最佳做法是使用某种类型的TBD参数定义我的参数。e、 g

type Parameters {...;TBD : Dictionary<string, string> }
这样,当我启动时,我可以填写我第一次设置的参数,然后,当TBD事情变得已知时,将其添加到参数表中


这有意义吗?这是正确的方法还是我完全没有找到更好的方法

我认为您应该从尽可能简单的方式开始,在这种情况下,我确信这意味着继续使用带有普通字段的记录,就像您问题中的第一行源代码一样。在F中,这将使您在不费吹灰之力的情况下走上很长的一段路。如果在任何时候,配置变得庞大,并且你觉得需要更先进的东西来处理它,那么你可以考虑改变。

< P>我认为你应该以最简单的方式开始做事情,在这种情况下,我确信意味着继续使用一个简单的字段记录。就像你问题的第一行。在F中,这将使您在不费吹灰之力的情况下走上很长的一段路。如果在任何时候,配置变得庞大,并且你觉得需要更高级的东西来处理它,那么你可以考虑改变。

一般区分工会对参数/参数很好地工作。看一看,即使只是为了设计,我也不建议它适合你的需要。这假设您可以预先定义参数空间,并且参数空间保持不变


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

通常,有区别的联合对参数/参数很有效。看一看,即使只是为了设计,我也不建议它适合你的需要。这假设您可以预先定义参数空间,并且参数空间保持不变

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