F# 强制转换为前缀运算符



在F#中,许多中缀运算符可以成为前缀运算符:

a + b
(+) 1 a b

但是,对于向上(或向下(运算符,这似乎是不允许的。

x是一个继承自PrincipalUserPrincipal

x :> Principal
(:>) x Principal

为什么?

可能是因为与其他运算符不同,强制转换运算符不将两个表达式作为参数;它们接受一个表达式和一个类型。因此,(:>) x必须是"采用类型的函数",这不是 F# 中存在的东西。

最新更新