我怎样才能去掉 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