繁体   English   中英

OCaml-如何将字符串转换为int?

[英]OCaml - How do I convert string to int?

我是Ocaml的新手,正在尝试这样做:

let medio a b =
    (a + b);;
let () = Printf.printf "%d + %d  = %d\n" Sys.argv.(1) Sys.argv.(2) (medio Sys.argv.(1) Sys.argv.(2))    

Sys.argv。(1)必须是C中的arg [1]〜

现在,我想将它们像参数一样用于我的函数medio ,但是它们是字符串。 我如何将它们解析为int? 有一个ocaml函数可以做到吗? python中,在ocaml中的C中是int(Sys.argv。(2))还是int atoi(con​​st char * str)?

您可以使用文档中介绍的'int_of_string'函数。

我将从int_of_string开始。 通常,OCaml标准库提供以下类型的函数,这些函数在类型之间进行转换,格式为<output>_of_<input> ,例如float_of_stringstring_of_int等。

您可以使用Arg模块来解析命令行参数。

示例: test.ml

  let ri_a=ref 0 in
  let ri_b=ref 0 in

  Arg.parse [
    ("-a",Arg.Int      (function i -> ri_a:=i),"");
    ("-b",Arg.Int      (function i -> ri_b:=i),"");
    ] (function s -> ()) "ERROR";

  Printf.printf "%d %d" !ri_a !ri_b;

使用它

./test -a 2 -b 3
2 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM