arrays - 如何将 "map"数组转换为单个新对象?

标签 arrays scala dictionary reduce

我有一个数组[Float],我想使用该数组的元素来初始化一个新对象。

以一种经典的、命令式的方式,我当然可以简单地做:

val array: Array[Float] = ...
val rect: Rect = new Rect(Point(array(0), array(1), Size(array(2), array(3))

有没有办法使用某种类型的“ map ”以更实用的方式做到这一点?像这样的事情:

array => new Rect(Point(_(0), _(1)), Size(_(2), _(3)))

我正在尝试解析 CSV 文件:

string.split("\n") map {
  line => line.split(".") map { 
    value => value.trim.toDouble
  } => new Rect(Point(_(0), _(1)), Size(_(2), _(3))) // something like this?
}

最佳答案

不确定是否有效,但像 array(n) 这样重复变量名 4 次可以通过解构来改进:

val Array(x, y, w, h) = "1,2,3,4".split(",").map(_.trim.toDouble)
new Rect(Point(x, y), Size(w, h))

(类似于Markus1189的答案,只是它不必是匿名函数)

我想说这更多的是关于可读性而不是功能性

关于arrays - 如何将 "map"数组转换为单个新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816991/

相关文章:

android - 微调器问题中的动态数组

scala - 为什么使用 updateStateByKey 时任务大小一直在增长?

python - Pandas:DataFrame.from_dict() 中的分隔符

c++ - 在 C++ 中实现无序映射

scala - 困惑如何建立多项目 sbt 项目

python - 将多个元组转换为嵌套字典

java - Java 中的数组声明和初始化

c - strcat with char 来自 c 中的数组

java - 在二维整数数组中搜索重复条目

scala - 如何使用带有灵活 SQL 插值的案例类?