1

編集/更新: 問題は修正されました!

Scala でコレクションを繰り返し処理するのは通常簡単なので、これはちょっと奇妙ですが、ケース クラスの double 配列を使用しているときにコンパイル エラーが発生します。エラーは言う:

 error: value foreach is not a member of Array[Double] for(d <- data.data_arr) 

わかりました、これがケースクラスです:

case class StatsData (name: String,
                  timeUnit: TimeUnit,
                  data_arr: Array[Double],
                  min: Double,
                  max: Double){}

そして、ここに重要なポイントがあります:

  /*Doesn't work */ 
 for(d <- data.data_arr) {         
  println(d) // can't fetch value d here   
  number = new Number(col, row, d)
 }

奇妙なことは、私が使用している反復の種類に関係なく、単に機能しないことです。たとえば、配列インデックスを使用する

 for (i <- data_arr.length-1)

配列をシーケンスに変換するだけでなく、上記とまったく同じエラーがスローされます。

for(d <- data.data_arr.toSeq)

私は何を間違っていますか?

この件についてご協力いただきありがとうございます。

編集/更新: 問題は修正されました!

原因はIntelliJのProjectの設定や構造の問題で、一概には言えませんが、新規プロジェクトを作成することで解決しました。同じコードが完全に正常に実行されるようになりました。申し訳ありませんが、投稿のほぼすべてが問題を突き止めるのに役立ちました。

@ヤクシェーバー

正確に使用される「利回り」表現は何ですか?

すべての助けをありがとう。

4

1 に答える 1

0

両方

Array(1, 2, 3) foreach println

for(i <- Array(1, 2, 3)) yield i

for(i <- Array(1, 2, 3)) { println(i) }

私にとっては 2.10.0-RC3 でうまく動作します。

于 2012-12-15T06:43:55.737 に答える