从Tuple2数组创建案例类对象的最简单方法是什么?

时间:2017-02-16 10:27:35

标签: arrays scala tuples case-class

我想要组合两个数组并创建Array[Item]Item是一个案例类。这是一个例子:

case class Item(a: String, b: Int)

val itemStrings = Array("a_string", "another_string", "yet_another_string")

val itemInts = Array(1, 2, 3)

val zipped = itemStrings zip itemInts

目前我使用以下解决方案来解决它,但我想知道是否还有其他可能性 ...

val itemArray = zipped map { case (a, b) => Item(a, b) }

给出我想要的东西:

itemArray: Array[Item] = Array(Item(a_string, 1), Item(another_string, 2), Item(yet_another_string, 3))

我也尝试了这个,但它不适用于一系列元素:

(Item.apply _).tupled(zipped:_*)

Item.tupled(zipped:_*)

1 个答案:

答案 0 :(得分:3)

您可以map使用Item.tupled

zipped.map(Item.tupled)
scala> zipped.map(Item.tupled)
res3: Array[Item] = Array(Item(a_string,1), Item(another_string,2), Item(yet_another_string,3))
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Customer extends Model
{
  public function businesses()
  {
    return $this->hasMany('App\Business');
  }
}