Arrays Scala-根据范围生成字节数组

Arrays Scala-根据范围生成字节数组,arrays,scala,byte,Arrays,Scala,Byte,我正试图解决一个(可能)微不足道的问题。我想要一种基于范围实例化字节数组的简洁方法。到目前为止,这是可行的 Array(1 : Byte, 2 : Byte) 但是我想用像这样的东西 ((1: Byte) to (10: Byte)).toArray 但是,这是数组[Int]范围不是通用的;它继承自IndexedSeq[Int],因此无法创建字节的范围。(编辑:有关通用范围类型,请参见Daniel C.Sobral的答案!) 当您尝试((1:Byte)到(10:Byte))时,字节将再次隐式

我正试图解决一个(可能)微不足道的问题。我想要一种基于范围实例化字节数组的简洁方法。到目前为止,这是可行的

Array(1 : Byte, 2 : Byte)
但是我想用像这样的东西

((1: Byte) to (10: Byte)).toArray

但是,这是
数组[Int]
范围
不是通用的;它继承自
IndexedSeq[Int]
,因此无法创建
字节的
范围。(编辑:有关通用范围类型,请参见Daniel C.Sobral的答案!)

当您尝试
((1:Byte)到(10:Byte))
时,
字节将再次隐式转换回
Int

那么:

(1 to 10).map(_.toByte).toArray
这将导致对集合进行两次传递;如果这是一个问题,非严格的观点将纠正:

(1 to 10).view.map(_.toByte).toArray

范围
不是通用的;它继承自
IndexedSeq[Int]
,因此无法创建
字节的
范围。(编辑:有关通用范围类型,请参见Daniel C.Sobral的答案!)

当您尝试
((1:Byte)到(10:Byte))
时,
字节将再次隐式转换回
Int

那么:

(1 to 10).map(_.toByte).toArray
这将导致对集合进行两次传递;如果这是一个问题,非严格的观点将纠正:

(1 to 10).view.map(_.toByte).toArray
诚然,对于任何类型的
T
,都有一个更通用的范围,其中有一个
integral[T]
numeriRange

import scala.collection.immutable.NumericRange
NumericRange(1: Byte, 10:Byte, 1: Byte).toArray
另一种选择是将结果数组映射到字节,而不是映射范围。例如,使用
数组
方法:

Array.range(1, 10).map(_.toByte)
诚然,对于任何类型的
T
,都有一个更通用的范围,其中有一个
integral[T]
numeriRange

import scala.collection.immutable.NumericRange
NumericRange(1: Byte, 10:Byte, 1: Byte).toArray
另一种选择是将结果数组映射到字节,而不是映射范围。例如,使用
数组
方法:

Array.range(1, 10).map(_.toByte)

+我在写答案时注意到了
numeriRange
,但调查不够+我在写答案时注意到了
numeriRange
,但调查不够!