F#中的'do'關鍵字的一個更微妙的用途是能夠註釋返回單元(aka語句)的表達式。例如,我經常在函數定義中這樣做,以清楚說明返回類型是單位,並且還指示編譯器爲我檢查此類型。例如:適當的F#中的綁定風格#
let restart agent = do agent.Post Restart
但是我不確定'do'關鍵字占主導地位的是F#社區。
什麼是使用「做」關鍵字在這個例子中,正確的方法:
// Annotate each statement
let move source destination =
do copy source destination
do clear source
// Annotate the statements as one block
let move source destination =
do
copy source destination
clear source
// Just annotate the "return" statement
let move source destination =
copy source destination
do clear source
// Perhaps don't annotate at all?
let move source destination =
copy source destination
clear source
很好的答案!我知道FS0020,但我更喜歡在這種情況下明確表達,尤其是因爲單位表達意味着副作用,這迫使您考慮每一個這樣的用法,並且引起讀者的注意。說到分號,另一種選擇可能是:複製源目標;明確的來源 – monoceres