2014-04-08 4 views
3

내가 튜플의 서열을 가지고 반복 :는 튜플의 서열을 병합하고 그들이

내가 그들을 반복에 ( 를 추가)을 병합 할
scala> val a = Seq[(Int, String)]((1, "111"), (2, "222")) 
a: Seq[(Int, String)] = List((1,111), (2,222)) 

scala> val b = Seq[(Int, String)]((4, "444")) 
b: Seq[(Int, String)] = List((4,444)) 

:

scala> val c = b :+ a 
c: Seq[Equals] = List((4,444), List((1,111), (2,222))) 

scala> c.foreach { x => 
    | println(x._2) 
    | } 

<console>:12: error: value _2 is not a member of Equals 
      println(x._2) 

이 도움이되지 않은 : 분명히, 나는 오류가 발생했습니다

val d = c.asInstanceOf[Seq[(Int, String)]] 
res14: Seq[(Int, String)] = List((4,444), List((1,111), (2,222))) 


scala> d.getClass 
res15: Class[_ <: Seq[(Int, String)]] = class scala.collection.immutable.$colon$colon 


scala> d.foreach { x => 
    | println(x._2) 
    | } 
444 
java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.Tuple2 

답변

2
당신은이 개 Seq의 병합 a ++ b을 사용할 수 있습니다

: 실제로 당신이 잘못된 연산자를 사용

val a = Seq[(Int, String)]((1, "111"), (2, "222")) 
a: Seq[(Int, String)] = List((1,111), (2,222)) 

val b = Seq[(Int, String)]((4, "444")) 
b: Seq[(Int, String)] = List((4,444)) 

a ++ b 
res0: Seq[(Int, String)] = List((1,111), (2,222), (4,444)) 
1

를 - 그것은해야

val c = b +: a