我有一系列具有值和力量2的元组:
val fields3: Seq[(Int, Int)] = Seq((3, 9), (5, 25))
我想知道的是,当我创建没有使用foreach的对象时,是否有办法直接访问同一元组的值:
val fields3: Seq[(Int, Int)] = Seq((3, 3 * 3 ), (5, 5 * 5))
我的想法是这样的:
val fields3: Seq[(Int, Int)] = Seq((3, _1 * _1 ), (5, _1 * _1)) //like this doesn't compile
答案 0 :(得分:2)
您可以这样做:
Seq(2,3,4).map(i => (i, i*i))
答案 1 :(得分:0)
您可以将元组包含在案例类中:
case class TupleInt(base: Int) {
val tuple: (Int, Int) = (base, base*base)
}
然后你可以像这样创建序列:
val fields3: Seq[(Int, Int)] = Seq(TupleInt(3), TupleInt(5)).map(_.tuple)
我更喜欢@ geek94给出的答案,这对你想做的事情来说太冗长了。
同样有效的表达方式是:
val fields3: Seq[(Int, Int)] = Seq(3, 5).map(i => i -> i*i)