2016-10-20 4 views
0

Im‘Neuling in Ocaml und Im'trying, dies zu tun.OCaml - Wie konvertiere ich String in int?

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) die arg sein muss [1] ~ in C

Now I möchte sie wie Parameter für meine Funktion verwenden medio, aber sie sind Strings. Wie kann ich sie ins int parasieren? Gibt es eine Ocaml-Funktion? In python ist int (Sys.argv. (2)) oder int atoi (const char * str) in C in ocaml?

Antwort

5

Man könnte die ‚int_of_string‘ Funktion im documentation beschrieben verwenden.

+0

Ok, dass ist perfekt !!! – Teshtek

4

Ich würde mit int_of_string beginnen. Im Allgemeinen stellen OCaml Standardbibliotheksfunktionen, die zwischen Typen umwandelt, der folgenden Form <output>_of_<input>, z.B. float_of_string, string_of_int usw.

0

Sie können das Modul zum Parsen von Befehlszeilenargumenten verwenden.

Beispiel: 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; 

, es zu benutzen

./test -a 2 -b 3 
2 3 
Verwandte Themen