我的问题很简单:如何翻译这段 C 代码:
if (x == y + 1)
// some code
else if (x == y - 1)
// some code
else if (x == y + 2)
....
基本上我正在考虑使用似乎合适的模式匹配。不幸的是,这样的模式不起作用:
match x with
| y + 1 -> some code
| y - 1 -> some code
| y + 2 -> some code
| _ -> some code
编译器似乎并不高兴,从我发现的情况来看,像我一样在模式匹配上的表达式是不被容忍的。因此,我尝试将它们放入值中:
let v1 = y + 1 in
let v2 = y - 1 in
let v3 = y + 2 in
match x with
| v1 -> some code
| v2 -> some code
| v3 -> some code
| _ -> some code
不幸的是,我收到警告说我的值 v1 v2 和 v3 未使用,并且使用它们的匹配案例也未使用。
如何正确地将表达式与其他表达式匹配?
谢谢