2017-01-06 5 views
0

私はSCALAで新しく、別のリストのコールサービスからIntのリストを作成したいと思います。スカラーのOther ThingのリストからIntのリストを作成します

def listaIndicesServicios(servicios: List[Servicio], indices: List[Int]): List[Int]={ 
if(servicios.length==0){ 
indices 
} 
else { 
val listaNueva = servicios.head.codigoServicio :: indices 
    listaIndicesServicios(servicios.tail, listaNueva) 
} 
} 

と私のメソッドを呼び出す:私はそのような何かを行うオブジェクト・サービスのリストは、指定されたintフィールド名codeServiceが含まれている、と私は私のサービスリストからすべてのcodeServiceの一覧を取得したい。..

val lista = listaIndicesServicios(servicios.servicios.reverse,List()) 

しかし私の脳はあまりにも不可欠だと思います。私はfoldRigthやreduceなどと思っています。より良い機能を得ることができます。...あなたに感謝することができます。

+0

'servicios.map(。_ codigoServicio)' –

+0

FYI両方[ 'foldRight'](HTTP://www.scala -lang.org/api/2.12.1/scala/collection/immutable/List.html#foldRight[B](z:B)(op:(A,B)=>B):B)と['reduce' ](http://www.scala-lang.org/api/2.12.1/scala/collection/immutable/List.html#reduce [A1>:A](op:(A1、A1)=> A1): A1)コレクションを単一のアイテムに変換します(これは私が想定しているコレクションになります)。コレクションの各要素を新しいコレクションの新しい項目に変換しようとしているので、['map'](http://www.scala-lang.org/api/2.12.1/scala/collection/)不変/ List.html#reduce [A1]:A](op:(A1、A1)=> A1):A1)。 –

答えて

1

.mapメソッドを使用すると、リスト[Int]でリスト[サービス]を変換できます。ような何か:

servicios.map(servicio => servicio.codigoServicio) 

や、Scalaはあなたが書くことができます:

servicios.map(_.codigoServicio) 
関連する問題