2017-04-18 17 views
1

说我有一组程序参数的记录类型如下:的程序中使用记录类型参数

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

而且,说,我最初从CLI参数或DB调用或任何填充它,真的。

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

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

,这样,当我开始了,我可以在参数我(第一组)填写,后来,当TBD事情就变得众所周知,添加到paramemeters?

这有道理吗?这是正确的方式,还是有更好的方法,我完全失踪?

回答

3

我认为你应该以尽可能最简单的方式做事,在这种情况下,我肯定意味着继续使用带有普通字段的记录,如问题中的第一个源代码行。在F#中,这将为你带来很大的努力。如果在任何时候配置都变得庞大,并且您觉得需要更高级的功能来应对它,那么您可以考虑更改。

1

通常判别的联合对参数/参数运行良好。看看ArguCommandLine(即使只是为了设计,我并不是说它适合您的需求)。这假定您可以提前定义您的参数空间,并且它保持不变。

如果您事先不知道参数,您仍然可以定义默认记录,只需在with可用时更新这些字段。如有必要,你可以在那里使用Some/None。但是,如果你甚至不知道参数名称(即它将是记录中的新字段),我会继续添加新的键值条目,这是参数。

相关问题