【发布时间】:2015-12-08 20:49:09
【问题描述】:
我在 Groovy 中创建了一个类 Matrix,并重载了 multiply() 函数,以便我可以轻松编写如下内容:
Matrix m1 = [[1.0, 0.0],[0.0,1.0]]
Matrix m2 = m1 * 2.0
Matrix m3 = m1 * m2
Matrix m4 = m1 * [[5.0],[10.0]]
但是现在,假设我在写:
Matrix m5 = 2.0 * m1
Matrix m6 = [[5.0,10.0]] * m1
这两行会产生错误,因为 BigDecimal 和 ArrayList 类不能乘以 Matrix。
有没有办法为这些类重载multiply()? (我知道我可以扩展这两个类,但是有没有办法告诉 Groovy 在编译代码时使用扩展的类?)
【问题讨论】:
标签: math matrix groovy operator-overloading