farklı boyutta aşağıdaki listeleri var varsayalım doldurmak için :Zip İki liste
val desiredResult = ("ax", "by", "c")
I here teklif edilen
val wrongResult = (list1, list2).zipped map (_ + _)
çalıştı ancak bu amaçlanan şekilde çalışmaz, zip, eşleştirilemeyen uzun listenin öğelerini atar.
Bu sorunu nasıl çözebilirim? Listeleri sıkıştırmak ve bir liste daha uzunsa "varsayılan öğe" (bu durumda boş dizge gibi) vermek için bir yol var mı?
Sanırım her zaman bilmediğimiz bir şey var. –
Teşekkürler! Şimdi bu çözüm ile çalışır: 'list1.zipAll (list2," "," ") map ({case (y, x) => y + x})' 'ile daha önce olmadığı gibi' list1.zipAll (list2, ') "," ") harita (_ + _)'. Neden zipAll ile sıkıştırılmış işlev gibi kısa sözdizimini kullanamıyorum? – ForceOfWill
@ForceOfWill: '(list1, list2) .zipped' bir' Tuple2Zipped' döndürür, burada ['.map'] (http://www.scala-lang.org/api/current/index.html#scala.runtime .Tuple2Zipped @ map [B, To] (f: (El1, El2) => B) (implicitcbf: scala.collection.generic.CanBuildFrom [Repr1, B, To]): To) bir 'f: (El1 alır El2) => B' (2 argüman alan bir fonksiyon). 'List [A]' '' .map' bir 'f: A => B', yani sadece 1 argüman alır (bu durumda bir' Tuple2''dir). Ne yazık ki bu, '_ + _' (2 argüman alan bir işlevdir) burada uygulanamaz demektir. – Marth