キー/値のSeqをマップに変換したいと考えています。シーケンスの最初の要素は予約されているので、のペアのリストは1の位置から開始します。マップのリスト表現からScalaの実マップへ
質問:この機能をより機能的な方法で実装することは可能ですか?
def list2Map(plainMap:Seq[String]) = {
var map = Map[String, String]()
var idx = 1;
while(plainMap.size > idx) {
val key = plainMap(idx)
idx += 1
val value = plainMap(idx)
idx += 1
map = map + (key -> value)
}
map
}
assert(list2Map(Seq("reserved slot","key0","value0","key1","value1","key2","value2")) == Map(("key0"->"value0"),("key1"->"value1"),("key2"->"value2")))
私はスカラ座で新しいです、と私はコレクションを反復処理するさまざまな方法がたくさんあることを知っているが、私は要素で始まる、繰り返しごとに2つの要素を読み込むためのforeach方法を見つけていません1.
PS:ありがとうございました。私はみんなの反応でたくさんのことを学んでいます!
あまりにキーを末尾カバー質問? – Dima
@Dimaより機能的な方法でこの関数を実装することが可能な場合は疑問です。私は質問を更新しました。 – angelcervera
サンプル入力と期待される出力を提供できますか?ちょうど簡単な例を与えるだけで、答えを得るのに十分な詳細を提供することができます。 –