Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改scala中的任何数组?_Scala - Fatal编程技术网

如何更改scala中的任何数组?

如何更改scala中的任何数组?,scala,Scala,阵列arr是固定的。在这种情况下,如何将arr(0)更改为Array[Double] 1) 首先不要强制转换到Array[Any]: scala> val arr = Array[Any](Array(1.0, 2.0)) arr: Array[Any] = Array(Array(1.0, 2.0)) scala> arr(0) res28: Any = Array(1.0, 2.0) 2) 使用匹配: val arr: Array[Array[Double]] = Array

阵列
arr
是固定的。在这种情况下,如何将
arr(0)
更改为
Array[Double]

1) 首先不要强制转换到
Array[Any]

scala> val arr = Array[Any](Array(1.0, 2.0))
arr: Array[Any] = Array(Array(1.0, 2.0))

scala> arr(0)
res28: Any = Array(1.0, 2.0)
2) 使用
匹配

val arr: Array[Array[Double]] = Array(Array(1.0, 2.0))
val arr0: Array[Double] = arr(0)      
3) 将
用作安装

val arr0: Array[Double] = arr(0) match {
  case a: Array[Double] => a
}

这些都是按优先顺序排列的,选项1是迄今为止最好的解决方案,因为它避免了丢弃类型信息。

不要强制返回类型为any。推断为
any
通常意味着有错误,我宁愿选择3而不是2(警告它们都不好);2只是毫无意义地更长,效率更低。
val arr0: Array[Double] = arr(0).asInstanceOf[Array[Double]]