【发布时间】:2016-05-18 18:43:33
【问题描述】:
我最近询问this question 是否可以在 Java 中参数化原始数组的类型。 (基本上,我有一个数组,我想成为 double[] 或 float[] 基于某些参数。我使用的是基元数组而不是包装类数组(Double[],Float[]),因为它们的内存和时间效率更高,尤其是在处理大向量操作时。答案似乎是不,你不能在 Java 中做到这一点。
所以,我的新问题是:我可以在 Scala 中执行此操作吗?我知道原语有点隐藏,并且只在某些操作上装箱......所以如果可以将我的数组参数化为 Double 或 Float,并且编译器确实将它们实现为原语,我如何判断它们是否'被拆箱,或者以其他方式实现的效率低于我在源代码中执行“查找:双倍,替换:浮动”的情况?
【问题讨论】:
-
您阅读过@specialized 指令吗?这可能会有所帮助scala-notes.org/2011/04/specializing-for-primitive-types
标签: java arrays scala generics types