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