我几乎是第一次尝试在 ocaml 中编写命令式代码来尝试回答本网站上的问题,但我遇到了一个小问题。
let f() =
try
while true do
()
done
with
_ -> 2
他不喜欢这样,因为他认为这个函数返回unit,就像在try块中一样,但是try块返回一个int。因此,如果我在“完成”后添加 3,它会起作用,但它真的很难看,因为 3 真的永远不会返回。
你怎么做到这一点 ?
最佳答案
使用 assert false
,它总是引发异常,因此可以在任何类型的地方使用:
让 f() =
尝试
虽然是真的
()
完毕;
断言错误
和
_ -> 2
关于while-loop - 在尝试后返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201208/