会不会喜欢
class Complex[T: Numeric](real: T, imag: T)
有意义,而不是使用
Double
编写 Complex 类s, 一个使用 Long
s, 一个使用 BigInt
s,这样每个人都可以选择自己需要的号码类型?与非通用方法相比,性能如何?
最佳答案
目前,Numeric
不是 @specialized
.所以使用它的通用版本会受到装箱和拆箱的影响,性能会大大降低。这是一篇很好的博客文章,其中包含性能测量:
http://www.azavea.com/blogs/labs/2011/06/scalas-numeric-type-class-pt-2/
但是,你可以直接写一个 @specialized
不使用 Numeric
的复数类的版本并获得所有好处。
从严格实用的角度来看,我不确定理解带有整数部分的复数的用法是什么......
关于scala - 为复数定义一个类是否有意义,其中实部/虚部使用 Numeric[T] 而不是具体类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568936/