我正在学习Reasonml,但是在标准库和Bucklescript Js模块中都找不到相应的函数。除了使用 原始的javascript ,是否有更好的选择呢?
目前我是用下面这个函数实现的:
目前我是用下面这个函数实现的:
let parseint: string => int = [%raw {| x => parseInt(x, 10) |}];
let parseint: string => int = [%raw {| x => parseInt(x, 10) |}];
int_of_string
(还有 float_of_string
/ bool_of_string
)应该可以满足您的需求。
它在标准库中,您应该能够搜索到它 https://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html (如果您安装了reason-tools浏览器扩展程序,则该站点将更适合您,因为它会自动转换为Reason语法)
请注意,如果字符串无效,则所有这些函数都会抛出异常(阅读链接以了解每个函数的工作原理和对字符串的期望)。
正如@glennsl所指出的那样,当Bucklescript赶上OCaml编译器的更新版本(> 4.02.3)时,您可能需要使用更安全的_opt
变体,例如int_of_string_opt
,它返回一个 Some(number)
或 None
,具体取决于您对输入的信任程度,您希望避免异常的程度以及您想如何处理错误的输入(它是否是异常情况,应该杀死程序/堆栈,还是它是否是正常情况,应该在本地处理)。
_opt
变体不可用。 - glennslJs.Float.fromString
),但它没有相应的整数解析函数。 - gabrielperales