使用 OCaml 时,我几乎总是使用下划线通配符let _ = exp
,特别是当结果exp
并不重要,重要的是里面的计算。例如:
let _ = print_endline "abc" in
...
let _ = a := !a + 1 in
...
let _ = do_some_thing ... in
所以,我只是想知道广泛使用是否有任何副作用let _ = ...
?
副作用是将来您的软件中会出现烦人的错误。问题在于let _ =
是它会默默地忽略您想要全部的部分应用程序。假设您编写以下内容:
let f a b = ...
let _ = f 3 4
将来你添加一个参数f
:
let f a b c = ...
表达方式let _ = f 3 4
仍然会静默编译,并且您的程序不会调用该函数,让您想知道发生了什么。最好总是让()
并使用ignore
当您需要忽略非单位结果时:
let () = ignore (f 3 4)
let () = print_endline "abc"
Using let _ = ...
应该算是不好的风格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)