将映射函数应用于 Scala 中 Array 中包装的 NumericRange 的每个元素

Apply map function to every element of NumericRange wrapped in Array in Scala

我在尝试将映射函数应用于具有 NumericRange 的数组时遇到问题。

val x: Array[NumericRange[Double]] = Array(-100.0 to 100.0 by 1.0)
val m = x.map(_ * theta1)

但是,我遇到了一个错误。 :13: 错误:值 * 不是 scala.collection.immutable.NumericRange[Double] 的成员 val m = x.map(_ * theta1)

所以我知道 NumericRange 没有映射函数,但是我可以应用范围并将其转换为数组的惯用方法是什么?

当你做 x.map(_ * theta1) 时,你试图将 NumericRange 本身乘以 theta1,我想你需要

val m: Array[NumericRange[Double]] = x.map(_.map(_ * theta1))

类型:

val m: Array[NumericRange[Double]] = x.map(range: NumericRange[Double] => range.map(_ * theta1))