Printing 在OCaml中打印字符串时出现问题
代码编译时不使用print语句。但是,对于print语句,我在那一行得到了错误,即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
错误:此表达式具有类型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
和整个循环。