3

我是 OCaml 的初学者,我对一系列 let 有疑问,例如:

let x = myFun y in
let z = myFun x in
...

但是,在让之间,我使用 Hashtbl.iter 和其他返回单位的函数。如果我做:

let x = myFun y in
Hashtbl.iter (...) ...
let z = myFun x in
...

编译器引发错误。但是,如果我这样做:

let x = myFun y in
let h = Hashtbl.iter (...) ...
let z = myFun x in
...

编译器不会引发任何错误,只是警告显示从未使用过“h”。没有任何问题的最佳方法是什么?谢谢。

4

2 回答 2

4

您必须使用;来分隔表达式:

e1 ; e2

这会执行副作用e1并丢弃结果,然后评估 `e2.

所以在你的情况下:

let x = myFun y in
Hashtbl.iter (...) ... ;
let z = myFun x in
...
于 2013-04-04T20:20:31.167 回答
1

请注意,您可以写

let x = ... in
  let _ = Hashtbl.iter in ...
于 2013-04-05T10:59:30.210 回答