OCaml:用消息断言
哈哈
阅读:146
2025-02-15 21:57:57
评论:0
又是另一个问题 :P 我不太确定是应该将它张贴在这里还是在 OCaml 邮件列表上,但我先尝试 SO。
我喜欢断言语句。但是,我发现错误消息在没有附加消息的情况下几乎毫无用处(第 XXX 行的断言违规 --- 很好,但实际上出了什么问题?)。 我认为断言的好例子是 pythonic assert x > 0, "X must be greater than zero for the algorithm X to work"
而坏的例子是 C-like assert( x>0)
.
得知在 OCaml 中无法将错误消息附加到断言,我感到非常失望 =( 我的选择是:
- 写一个自定义函数,比如说
vassert
=> 但我不会得到只有assert
关键字才有可能的神奇行号 - 使用
failwith
,但它相当冗长,我认为它会遇到与自定义函数相同的问题。 - 使用
OUnit
中的函数,但我不想引入不必要的依赖。
有没有人遇到同样的问题?人们使用什么?
请您参考如下方法:
有点乏味但工作正常:
assert (if not cond then print_endline "your message"; cond)
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。