的內容首次轉讓的課程https://www.coursera.org/course/progfun 我想做到以下幾點斯卡拉添加兩個列表
val l1 = List(1,2,3)
val l2 = List(4,5,6)
val lSum = l1.someOperation(l2)
RES: lSum=List(5,7,9)
我可以用一個循環實現someOperation,但看起來不是很scalarish,我想知道是否有內置的功能來實現這一點。
的內容首次轉讓的課程https://www.coursera.org/course/progfun 我想做到以下幾點斯卡拉添加兩個列表
val l1 = List(1,2,3)
val l2 = List(4,5,6)
val lSum = l1.someOperation(l2)
RES: lSum=List(5,7,9)
我可以用一個循環實現someOperation,但看起來不是很scalarish,我想知道是否有內置的功能來實現這一點。
您可能會壓縮他們在地圖中通常執行加法:
l1.zip(l2).map(x => x._1 + x._2)
謝謝。這是我正在尋找的。 –
這比@ OM-NOM-NOM的代碼可能更Scalaish。雖然Scala是,作爲語言去,還是蠻年輕的,所以實際上還在爭論實際上大約是什麼和不 Scalaish:
除了zip
,標準庫還提供zipped
這避免了需要解構任何元組:
(l1, l2).zipped.map(_ + _)
這應該是正確的答案,因爲使用壓縮避免了創建元組的中間列表。更多信息請見本頁#11:http://tinyurl.com/scala-snippets – AmigoNico
你能做到這一點遞歸,它會是簡單和Scala十歲上下。 – Borgleader