在F#中,可以将许多中缀运算符用作前缀运算符:
a + b
(+) 1 a b
但是,上流(或下流)运营商似乎不允许这样做。
x
是UserPrincipal
,它继承自Principal
x :> Principal
(:>) x Principal
为什么?
答案 0 :(得分:3)
可能是因为与其他运算符不同,强制转换运算符不采用两个表达式作为参数;他们接受一个表达式和一个类型。因此,(:>) x
必须是“具有某种类型的函数”,这不是F#中存在的东西。