Scala - вычислить две переменные за один шаг - PullRequest
0 голосов
/ 04 июля 2018

Я назначаю две переменные:

val a: Seq[Int] = schema.map(_.getLong(key="width").toInt)

val b: Seq[String] = schema.map(_.name)

Я использую эти переменные в разных местах.

Поскольку я вычисляю оба из одной и той же схемы, мне нужно объединить это в один шаг с одной переменной, чтобы я мог вычислить это за одну попытку.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

I need to merge this into one step with one variables so that I can compute this in one attempt.

вы можете создать Seq[Tuple2[Int, String]] как

val c: Seq[(Int, String)] = schema.map(x => (x.getLong(key="width").toInt, x.name))

так что c._1 равно вашим элементам , а c._2 равно элементам b

или другими словами

c.map(_._1) равно , а c.map(_._2) равно b

0 голосов
/ 04 июля 2018
val ab= schema.map(i=> (i.getLong(key="width").toInt),i.name))

даст вам кортеж с обоими значениями

если вы хотите, чтобы они были названы, вы можете

case class S(name : String, width: Int)
val ab = schema.map(i=> S(i.name,i.getLong(key="width").toInt))
...