使用 OCaml 时,我几乎总是在 let _ = exp
中使用下划线通配符,尤其是当 exp
的结果时不重要,重要的是里面的计算。例如:
让 _ = print_endline "abc"在
...
让 _ = a := !a + 1 in
...
让 _ = 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"
使用
let _ = ...
应该被认为是坏风格。
关于ocaml - 在 OCaml 中的 let 命令(即 let _ = ... in)中使用下划线通配符有什么副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048359/