0
代碼在沒有打印語句的情況下編譯。但是,在打印聲明中,我得到該行上的錯誤Error: This expression has type unit but an expression was expected of type int
。我也試着print_string numDigits
在OCaml中打印字符串時遇到問題
let rec rev_int num =
if num/10 == 0 then
num
else
let temp = num mod 10 in
let numDigits = string_of_int num in
Printf.printf "%s" numDigits
let num = (num - temp)/10 in
temp * (10 * String.length(numDigits)) + rev_int num;;
謝謝;這固定它!出於好奇,在其他代碼'printf'結束時,不分號碼或兩個。爲什麼在這種情況下? – stumped
2分號已過時,旨在分離頂級定義。我建議不要在ocaml交互循環之外使用它(無論如何它都是強制性的)。 – mookid
1分號分隔副作用('單元類型值);例如:'let x = ref 0.0 in for i = 1 to 5 do x:=!x +。 1./.float i; !Printf.printf 「%F \ N」 X;完成;'。編譯器確保';'之前的值的類型爲'unit'(這裏是值'x:=!x +。1./.float i';'Printf.printf「%f \ n」!x '和整個循環。 – mookid