連結して文字列として1つのforループで返す文字のl:List [Char]があります。
私はこれを試しました
val x: String = for(i <- list) yield(i)
につながる
error: type mismatch;
found : List[Char]
required: String
では、どうすれば利回りの結果タイプを変更できますか?
ありがとう!
これを試して:
val x: String = list.mkString
この構文:
for (i <- list) yield i
構文糖:
list.map(i => i)
したがって、元のlist
の変更されていないコピーが返されます。
次のものを使用できます。
val x: String = (for(i <- list) yield(i))(collection.breakOut)
BreakOutの詳細については、 この質問 を参照してください。
3つのmkStringオーバーロードのいずれかを使用できます。基本的には、各要素のtoStringメソッドによってコレクションをフラットな文字列に変換します。オーバーロードは、各要素の間にカスタムのセパレーターを追加します。
Iterableのメソッドであるため、MapまたはSetでも使用できます。
詳細は http://www.scala-lang.org/api/2.7.2/scala/Iterable.html を参照してください。