Scala对数组有一些特殊处理,因为它们受到JVM本机数组的支持,这增加了它们的使用复杂性 - 特别是在用作泛型时需要传递类清单。当传递那些不可行的时候,它的表现也较差GenericArray
。现在,scala.js不能在JVM上运行,那么所有这些复杂性会发生什么呢?原始类型的数组是否存储了未装箱的值? GenericArray
的效果是Array
吗?在scala.js上,我应该使用什么作为数组类型获得最佳性能?
答案 0 :(得分:3)
scala.Array
模拟Scala.js中JVM数组的功能。这意味着它们具有相同的复杂性,GenericArray
确实更慢。他们存储所有未装箱的东西。
为了在通用上下文中获得最佳性能,请使用js.Array
。这不需要类标记,也没有通用数组惩罚。但是,Char
被装箱,就像任何通用类型一样。