我使用 String.to_int,有时会出错,例如当字符串不是 int 的表示形式时。我想捕获这些错误,或者在使用函数之前测试参数。一些想法?
谢谢
最佳答案
嗯,有人可能会争辩说,如果 stdlib 中的 String.to_int
返回一个可选的整数(none
表示错误)会更好。
然而,在 Opa 中,大多数解析是使用 parsers 完成的*。例如,要获得上述功能,您可以编写:
string_to_int_opt(s : string) : option(int) =
Parser.try_parse(Rule.integer, s)
或者,如果你想不那么冗长,等效的:
string_to_int_opt = Parser.try_parse(Rule.integer, _)
或者如果它是更复杂的解析的一部分,您只需在那里使用 Rule.integer
解析器。
(*) 我想手册的这一部分可以使用一些扩展...
关于opa - 保护 String.to_int 和其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6732208/