Printing 在OCaml中打印字符串时出现问题

Printing 在OCaml中打印字符串时出现问题,printing,types,output,ocaml,format-string,Printing,Types,Output,Ocaml,Format String,代码编译时不使用print语句。但是,对于print语句,我在那一行得到了错误,即错误:此表达式具有类型unit,但表达式的类型应为int。我还尝试了打印字符串numDigits 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" numDig

代码编译时不使用print语句。但是,对于print语句,我在那一行得到了错误,即
错误:此表达式具有类型unit,但表达式的类型应为int
。我还尝试了
打印字符串numDigits

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行末尾缺少分号


另一种操作系统是以
let()=
开始这一行,并在
中以
结束这一行,谢谢;这个修好了!出于好奇,在另一个代码
printf
中,要么没有分号,要么有两个分号。为什么在这种情况下只有一个?2个分号已经过时,用于分隔顶级定义。我建议不要在ocaml交互循环之外使用它(无论如何它是强制性的)。1分号用于区分副作用(
unit
type值);例如:
对于i=1到5,让x=ref 0.0进入x:=!x+。1.浮动i;Printf.Printf“%f\n”!x;完成。编译器确保
之前的值的类型为
unit
(此处,值
x:=!x+.1./.float i
Printf.Printf“%f\n”!x
和整个循环。