Мне нравится, когда мой код довольно наивно читаем.
Если я настрою простой список кортежей:
scala> val a = List(6, 8, 10)
a: List[Int] = List(6, 8, 10)
scala> val b = a zipWithIndex
b: List[(Int, Int)] = List((6,0), (8,1), (10,2))
Я хотел бы сопоставить() в списке, но я нахожу синтаксис._1._2 немного трудночитаемым:
scala> val c = b map ( a => if(a._1 > 8) a._1 else a._2 )
c: List[Int] = List(0, 1, 10)
Чтобы "называть" кортеж, я использовал:
scala> val c = b map ( { case (num, i) => if(num > 8) num else i } )
c: List[Int] = List(0, 1, 10)
Два вопроса:
1) Есть ли более сжатый способ назвать члены кортежа?
2) Есть ли значительный успех для моей версии выше (она используется в умеренно критическом для производительности коде).
Спасибо.