ocaml - 在 OCaml 中的 let 命令(即 let _ = ... in)中使用下划线通配符有什么副作用吗?

标签 ocaml let

使用 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/

相关文章:

f# - OCaml 和 F# 之间的代码兼容性

types - Ocaml 中 "type ...and "和 "let ...and "之间的范围不一致

ios - Swift:为什么不能让惰性、计算属性和属性观察器

pointers - Lisp、cffi、let 和内存

haskell - 让 5 = 10 做什么?这不是赋值操作吗?

f# - 使用延续将二元递归转化为尾递归

OCaml:在 "fun"守卫时

string - 我的 OCaml 代码是用 64 位编译的吗

haskell - 运行时是否通常使用类似命令式的函数式语言代码解释

javascript - 如果搜索第一个和最后一个数组并且给定参数只有 1 个值,如何在函数中仅返回一个数组