我有时会编写函数来假设某些参数不会发生.如果他们这样做,这是一个错误,我失败了:
let foo = function
| 0 -> ()
| _ -> failwith "foo: bad argument"
Run Code Online (Sandbox Code Playgroud)
如果我稍后重命名该函数,我必须记住也要更改字符串.有没有办法以更系统的方式做到这一点?我的思绪徘徊在像
| _ -> failwith (FUNCTION_NAME ^ ": bad argument")
Run Code Online (Sandbox Code Playgroud)
where FUNCTION_NAME是编译器或解释器将实例化的字符串变量.但我不知道这样的事情是否适用于OCaml.如果没有,是否有最佳做法?
有一组值可用于调试和错误报告.它们都不是函数名称,但如果您不想assert false按@SteveVinoski的建议使用它们可能会很有用.
__LOC__ : string
__FILE__ : string
__LINE__ : int
__MODULE__ : string
__POS__ : string * int * int * int
Run Code Online (Sandbox Code Playgroud)
还有更漂亮的表单可用于包装表达式以确定其在源中的范围.
这些记录在Pervasives模块中.
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |