无论我阅读过多少次这篇文章:F#: What are the valid prefix operators?
我和F#编译器从不同意什么是自定义前缀(或中缀)运算符名称。
在上面的帖子中,它说“+”可以是中缀和前缀运算符,但是这个:
let (+@) a = a + 20
+@ 30 |> printfn "%d"
给出错误“无效的前缀运算符”。
为什么?
答案 0 :(得分:3)
如果您在所提供的链接中查看Brian的回答,您会发现+@
中未列出运算符prefix-op
。要用作前缀运算符,运算符+
应该由~
作为前缀:
let (~+) a = a + 20
+ 30 |> printfn "%d"
结果:
50