所以这只是一个好奇心的问题.
如果我想返回单位,这是更好的做法?
|> ignore
Run Code Online (Sandbox Code Playgroud)
要么
()
Run Code Online (Sandbox Code Playgroud)
可能还有其他方法.我只想知道什么是最好的,考虑到这些:
Tom*_*cek 13
我认为你正在比较这里不太可比的东西.该()值允许您创建单位值,而|> ignore您可以使用该值忽略其他结果.两者并不完全相同:
如果您正在调用函数并且想要忽略结果,则可以只编写:
doStuff () |> ignore
Run Code Online (Sandbox Code Playgroud)
但是做同样的事情()会要求你忽略警告:
doStuff () // warning: Result is ignored
()
Run Code Online (Sandbox Code Playgroud)
...或者您可以_使用let绑定将结果分配给忽略模式:
let _ = doStuff ()
()
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,使用ignore更好 - 它是内联的,因此它没有性能影响,它导致代码更容易阅读.
也就是说,有些情况下你只需要创建一个单位价值然后()就是你所需要的(并且没有明显的方法ignore会让你这样做).例如:
match optMessage with
| Some message -> printfn "ANNOUNCEMENT: %s" message
| None -> ()
Run Code Online (Sandbox Code Playgroud)
你可以替换()使用42 |> ignore,以获得相同的结果,但它会是愚蠢的!