会像
class Complex[T: Numeric](real: T, imag: T)
有意义,而不是写一个Complex类用Double
s,一个用Long
s,一个用BigInt
s,让大家可以选择自己需要的数字类型?
与非通用方法相比,性能如何?
会像
class Complex[T: Numeric](real: T, imag: T)
有意义,而不是写一个Complex类用Double
s,一个用Long
s,一个用BigInt
s,让大家可以选择自己需要的数字类型?
与非通用方法相比,性能如何?
目前,Numeric
不是@specialized
。所以使用它的通用版本会受到装箱和拆箱的影响,性能会大大降低。这是一篇不错的博客文章,其中包含性能测量:
http://www.azavea.com/blogs/labs/2011/06/scalas-numeric-type-class-pt-2/
但是,您可以直接编写@specialized
复数类的一个版本,而无需使用Numeric
并获得所有好处。
从严格实用的角度来看,我不确定是否理解带有整数部分的复数的用途......