【发布时间】:2012-10-19 10:08:42
【问题描述】:
我正在尝试定义一个重载的运算符,例如|+|,如下:
let inline ( |+| ) (m1 : #IMeasurable) (m2 : #IMeasurable) = m1.Measure + m2.Measure
问题是,我不能这样做:
let three = m1 |+| m2 |+| m3
因为没有为案例(m1 : int) (m2 : #IMeasurable) 定义运算符|+|。有没有办法重载这个运算符或使用静态类型约束来使上述表达式成为可能?有没有办法修改IMeasurable(我可以编辑),这样就可以了?还有什么可以让上述表达式起作用的吗?
谢谢。
【问题讨论】:
标签: syntax f# operator-overloading