[英]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(const char * str)?
您可以使用文档中介绍的'int_of_string'函数。
我将从int_of_string开始。 通常,OCaml标准库提供以下类型的函数,这些函数在类型之间进行转换,格式为<output>_of_<input>
,例如float_of_string
, string_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.