我想了解如何使用map
运算符,我可以创建一个具有与现有字段不同数量字段的元组。斯卡拉 - 从另一个创建一个元组
即,如果我在形式(String, Int1, Int2)
一个元组我想的(String, Int1 + Int2)
,其中第一场将是相同的如原始元组和第二场将是形式创建具有2个字段的元组添加原始元组的第二个和第三个字段。使用
我想了解如何使用map
运算符,我可以创建一个具有与现有字段不同数量字段的元组。斯卡拉 - 从另一个创建一个元组
即,如果我在形式(String, Int1, Int2)
一个元组我想的(String, Int1 + Int2)
,其中第一场将是相同的如原始元组和第二场将是形式创建具有2个字段的元组添加原始元组的第二个和第三个字段。使用
模式匹配:
tuple match { case (a, b, c) => (a, b + c) }
map
不是元组的成员。如果元组是集合中元素的类型,则可以使用它。
collection map { case (a, b, c) => (a, b + c) }
地图和flatMap方法(String,Int,Int)
类型的一个元组,除了提取具有如由@Shyamendra Solanki所述的模式匹配的值,注意方法_1
,_2
和_3
;因此
def create(t : (String,Int,Int)) = (t._1, t._2+t._3)
也是一种可行的方法,虽然也许不太可读。
元组给定的集合,也考虑为内涵,其中
def create(xs : Seq[(String,Int,Int)]) = for ((s,i1,i2) <- xs) yield (s, i1+i2)
传达想要表达的语义。