私は値を受け取り、ペアのリストpairUpを返します。スカラ。反復が増加するリストを返すループが必要です
私はflightPass.keysの各値に対してpairUpを実行し、これらすべての返された値の大きなリストを返すforループを書きたいとキーセット、flightPass.keys
。
val result:List[(Int, Int)] = pairUp(flightPass.keys.toSeq(0)).toList
for (flight<- flightPass.keys.toSeq.drop(1))
{val result:List[(Int, Int)] = result ++ pairUp(flight).toList}
私は常にエラーを取得し、この上のいくつかのさまざまなバリエーションを試してみた:
<console>:23: error: forward reference extends over definition of value result
for (flight<- flightPass.keys.toSeq.drop(1)) {val result:List[(Int, Int)] = result ++ pairUp(flight).toList}
^
ので、私がここで間違って何をやっている、他の言語で動作するはずです、私はこのように感じますか?
私はある種のバッファ制限があるかもしれないと思う。 result.lengthの値は933ですが、flightPass.keys.lengthはもっと長くなります。それとも関連していないのでしょうか? これは私がループのために恐ろしいためにびっくりするようになった理由です。 –
@MatthewIrwin、933は制限されたメモリを備えた小さなコンピュータで作業していない限りあまり大きくありません。エラーの適切な説明なしに問題を解決するのは難しいです。キーを抽出するときに '.toIterator'を追加することができます。このように 'result'は' Iterator'になります。要求されたときにのみ、各鍵を1つずつ抽出して処理します。 – jwvh
各pairUpは、約5000のエントリを持つリストを返します。最終結果には、flightPass.keysからX量を落とすと –