[英]How can I get arround Ocaml's type error?
我有这个警告,我想知道他为什么要等待Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
类型的表达式
这是 function,如果您需要更多代码,请问我。
let rec run()=
let a = create_bloc() in
trace_bloc(a);
let b : char ref = ref 'f' in
while true do
b := 'f';
if !(a.s) = 1 then run() else
let c = get_move() in
if c = Some 'z' then b:= 'z'
else if c = Some 'q' then b:= 'q'
else if c = Some 's' then b:= 's'
else if c = Some 'd' then b:= 'd';
if !b = 'z' || !b = 's' then
if !(a.o) = 4 && !b = 'z' then begin erase_bloc(a) ;a.o := 1; trace_bloc(a); end
else if !b = 'z' && !(a.o) <> 4 then begin erase_bloc(a); a.o := !(a.o)+1; end;
if !b = 's' && !(a.o)=1 then begin erase_bloc(a);a.o := 4;trace_bloc(a);end else
if !b = 's' && !(a.o) <> 1 then begin erase_bloc(a); a.o := !(a.o)-1;trace_bloc(a);end
else if !b = 'd' || !b = 'q' then
decal(a,!b);
dep_bas(a);
Unix.select [] [] [] 0.35;
done;
;;
Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
类型是表达式Unix.select [] [] [] 0.35;
OCaml 不允许您忽略由 function 返回的类型不是unit
的值。 但是,您可以使用ignore
function 明确告诉编译器您不需要select
function 的结果,
ignore (Unix.select [] [] [] 0.35);
您还可以使用Unix.sleepf
function 实现支持小数秒的睡眠,例如,您可以将上面的表达式替换为,
Unix.sleepf 0.35
这也会暂停您的程序 350 毫秒。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.