2012-12-07 26 views
25

https://github.com/google/guava/wiki/FunctionalExplained'a bakıyorum Bir listeyi dönüştürebilecek ancak aynı kardinaliteyi koruyacak transform gibi işlemleri görüyorum. Farklı bir kardinalite ile sonuçlanan bir dönüşümü nasıl yapabilirim? Örneğin. (pseudocode) List(1,2,3).transform(i => List(i, i)) ->List(1,1,2,2,3,3)Scala'nın flatMap'in Guava eşdeğeri nedir?

+0

Ne zamandan beri geçerli Scala bir sözde kod? :) – Natix

+0

@Natix Sanırım Scala, sözdiziminden çok, sözdizimi açısından daha esnektir :) – toniedzwiedz

cevap

7

Doğrudan bir çeviri olduğunu düşünmüyorum, ancak transform ve ardından concat eşdeğer olmalıdır.

2

Ancak bir şeye dikkat edin: Scala'nın harita yöntemleri yeni koleksiyonları döndürürken, Guava'daki transform() yöntemi, orijinal koleksiyonun dönüştürülmüş bir görünümünü döndürür. Bu çok ince bir fark. 'Orijinal koleksiyona bakış' içeriğinizin sizin için uygun olup olmadığına karar vermeniz gerekir.