我想简化表达if(x == 1 || x == 2)
。
我希望我能写if(x == 1 or 2)
,但没有语法。
其他可能性是使用 Contains 或 Any 方法,例如:if([1,2].Contains(x))
但这涉及不必要的调用。
我可以创建一些允许我这样做的操作员吗?
在 Nemerle 语言中,我可以编写宏:
macro @|||(left, right)
match (left)
| <[ $x == $y ]> => <[ $x == $y || $x == $right ]>
| _ => Message.Error("Error"); <[ ]>
然后用法:
if (x == 1 ||| 2) { .. }
我可以在 F# 中以这种方式创建运算符吗?