又是另一个问题:P 我不太确定是否应该将其发布在这里或 OCaml 邮件列表上,但我首先尝试这样做。
我喜欢断言语句。然而,我发现如果没有附加消息,错误消息几乎毫无用处(第 XXX 行的断言冲突 --- 很好,但实际上出了什么问题?)。
我认为断言的一个很好的例子是 pythonicassert x > 0, "X must be greater than zero for the algorithm X to work"
一个不好的例子是 C-likeassert(x>0)
.
我非常失望地发现无法将错误消息附加到 OCaml 中的断言 =(
我的选择是:
- 编写一个自定义函数,比如说
vassert
=> 但我不会得到只有通过assert
keyword
- Use
failwith
,但它要冗长得多,而且我认为它遇到了与自定义函数相同的问题。
- 使用来自的函数
OUnit
,但我不想引入不必要的依赖关系。
其他人也有同样的问题吗?人们用什么?
有点乏味,但效果很好:
assert (if not cond then print_endline "your message"; cond)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)