如何 return ocaml 中 if else 语句的值?

How to return value of if else statement in ocaml?

我想要 return ocaml 中 if else 语句的值。

例如,如果我这样做

 let myvalue = if my_condition != 0 then do_this else do_this_instead 

但这似乎没有将 do_this 或 do_this 的结果存储_instead 在 myvalue 中。如果我在 C

中这样做
if(my_condition) 
{
   return 1 + 1;

} else {
   return 1 - 1;
}

我想实现同样的效果,不仅执行了 if-else 逻辑,而且还有一个 return 与捕获并存储的已执行语句关联的值.我如何在 ocaml 中执行此操作?

如果我按照...

# let myvalue = if 2 > 1 then 2 else 1;;
val myvalue : int = 2
# myvalue;;
- : int = 2

您还期待什么?

if-then-else 是一个表达式结构,表达式 produce/have values.

否则,如果您希望为相应的 thenelse 构造中的值调用其他函数,我们可以尝试以下方式...

# let my_condition = 2 in
  let do_this () = 1 + 1 in
  let do_this_instead () = 1 - 1 in
  myvalue = if my_condition != 0 then do_this () else do_this_instead ();;
- : bool = true
# myvalue;;
- : int = 2