Bir haritayı bir Tuple listesine dönüştürmek için Map.map'i kullanmayı denedim. Ancak bu başarısız olur. Bir Liste tek elemanlar (r1) ancak Harita küpe (r3) için üretilen için nasıl üretildiğiniScala: Bir haritayı bir haritaya ekle Harita
val m = Map(("a" -> 1), ("b" -> 2))
//> m : scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2)
val r1 = m.map{ case (k,v) => v} //> r1 : scala.collection.immutable.Iterable[Int] = List(1, 2)
def toTuple[A,B](a:A,b:B) = (a,b) //> toTuple: [A, B](a: A, b: B)(A, B)
//val r2: List[Tuple2[_,_]] = m.map(e => (e._1,e._2))
val r3 = m.map(e => toTuple(e._1,e._2)) //> r3 : scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2)
val r4 = m.toSeq //> r4 : Seq[(String, Int)] = ArrayBuffer((a,1), (b,2))
Bildirimi: Aşağıdaki deneyler yaptık. Çalışılan türü bile zorlamıyor (r2). Seq'e sadece açık bir çağrı yaptı (r4) Bu yüzden benim sorum, Map.map'ın "otomatik olarak" yeni bir Harita oluşturup örneğin bir liste oluşturmasına neden gerek yok? Gerçekte, dönüş tipi nasıl belirlenir (Sıra, Liste, vb.)
'm.toList' ile ilgili sorun nedir? Ayrıca, bir koleksiyondaki eşlemenin, aynı türden başka bir koleksiyona geri döndüğünü de unutmayın, bu nedenle, üzerinde '.toList 'ifadesini aramadıkça, bir' Harita 'üzerinde bir liste eşleştirmesi yapamazsınız. –
@Ende - Hiçbir şey yanlış değil. Aşağıdaki yoruma bakın. – user2051561