我怎样才能去掉 OCaml 中 int 周围的括号?
How can I get rid of parentheses around int in OCaml?
我正在尝试去掉围绕整数的括号,以便我可以将它传递给 int_of_string
例如,我想将 (-1) 传递给 int_of_string,但我不知道如何先去掉括号以便返回 -1。
我是 OCaml 的初学者,如有任何帮助,我们将不胜感激
这里是一个函数,returns最右边的'('
和最左边的')'
之间的子串:
let inside_parens s =
let lpar =
try String.rindex s '('
with Not_found -> -1
in
let rpar =
try String.index s ')'
with Not_found -> String.length s
in
String.sub s (lpar + 1) (rpar - lpar - 1)
它适用于您给出的示例:
# int_of_string (inside_parens "(-1)");;
- : int = -1
如果你想处理一些你没有展示的情况,你可能需要调整代码。
您可以使用Scanf.sscanf
解析字符串并提取整数部分:
(* inside_parens "(-1)" returns -1 *)
let inside_parens s = Scanf.sscanf s "(%d)" Fun.id
我正在尝试去掉围绕整数的括号,以便我可以将它传递给 int_of_string
例如,我想将 (-1) 传递给 int_of_string,但我不知道如何先去掉括号以便返回 -1。
我是 OCaml 的初学者,如有任何帮助,我们将不胜感激
这里是一个函数,returns最右边的'('
和最左边的')'
之间的子串:
let inside_parens s =
let lpar =
try String.rindex s '('
with Not_found -> -1
in
let rpar =
try String.index s ')'
with Not_found -> String.length s
in
String.sub s (lpar + 1) (rpar - lpar - 1)
它适用于您给出的示例:
# int_of_string (inside_parens "(-1)");;
- : int = -1
如果你想处理一些你没有展示的情况,你可能需要调整代码。
您可以使用Scanf.sscanf
解析字符串并提取整数部分:
(* inside_parens "(-1)" returns -1 *)
let inside_parens s = Scanf.sscanf s "(%d)" Fun.id