7

我正在学习 Reasonml,我在标准库中找不到任何功能,无论是 Bucklescript Js 模块。有没有比使用原始 javascript更好的选择?

现在我正在用这个功能实现它:

let parseint: string => int = [%raw {| x => parseInt(x, 10) |}];
4

1 回答 1

10

int_of_string(还有float_of_string/ bool_of_string)应该做你需要的。

它在标准库中,您应该能够搜索它https://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html (如果您有理由,该站点将更适合您-tools浏览器扩展安装,因此它会自动为您从 OCaml 转换为 Reason 语法)

请注意,如果字符串对该类型无效,所有这些函数都会抛出异常(阅读链接以了解每个函数的工作原理以及每个函数对字符串的期望)。

正如@glennsl 指出的那样,当 Bucklescript 赶上更新版本的 OCaml 编译器4.02.3时,您可能希望使用更安全的_opt变体,例如int_of_string_opt返回 aSome(number)None代替,这取决于您对输入的信任程度,您想要多少避免异常,以及您希望如何处理错误输入(是否异常并且应该终止程序/堆栈,还是正常并且应该在本地处理?)。

于 2017-12-31T19:42:29.937 回答