2017-04-18 38 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。但是,如果你甚至不知道參數名稱(即它將是記錄中的新字段),我會繼續添加新的鍵值條目,這是參數。

相關問題