编译器警告:FS0058:可能不正确缩进
问题描述:
我写了这个代码与Visual Studio,但是当我编译它,它给我回这些警告:编译器警告:FS0058:可能不正确缩进
FS0058:可能不正确缩进,此令牌是越位上下文从9:80开始。尝试进一步缩进此令牌或使用标准格式。
但是,如果我尝试编译它与OCaml编译器它的作品。
let converti_tempo = (fun x -> if x < 0 then failwith "error" else if x < 1000 then (0, 0, x) else
let rec m = x % 1000
let s = (x/1000) % 60
let mm = ((x/1000)/60) % 60
in (mm,s ,m));;
答
在第一行的末尾有一个else
。这意味着else
的表达式将在下一行中定义,因此必须一直缩进到else,然后再多一点。下面的代码:
let converti_tempo = (fun x -> if x < 0 then failwith "error" else if x < 1000 then (0, 0, x) else
let rec m = x % 1000
let s = (x/1000) % 60
let mm = ((x/1000)/60) % 60
in (mm,s ,m));;
你也可以写这样的:
let converti_tempo = (fun x -> if x < 0 then failwith "error"
else if x < 1000 then (0, 0, x)
else
let rec m = x % 1000
let s = (x/1000) % 60
let mm = ((x/1000)/60) % 60
in (mm,s ,m));;
答
我会说这是写这个功能的更“地道”的方式
let converti_tempo x =
if x < 0 then
failwith "error"
elif x < 1000 then
(0, 0, x)
else
let m = x % 1000
let s = x/1000 % 60
let mm = x/1000/60 % 60
(mm, s, m)
太谢谢你了! –