にコンパイルされません。通常のScalaソースファイル内で同じ3行がコンパイルされて正常に動作します。のtoStringはScalaのワークシート
なぜこれはワークシートでは機能しませんか?
これは、Eclipse 3.7.2を使用しているが、ScalaのIDE 3.0.0.v-2_10、Scalaのワークシートは0.1.4.v-2_10
は[更新:もともとtoBinaryString使用し、この質問が、問題が発生してもtoStringを使用するので、簡略化しました]
にコンパイルされません。通常のScalaソースファイル内で同じ3行がコンパイルされて正常に動作します。のtoStringはScalaのワークシート
なぜこれはワークシートでは機能しませんか?
これは、Eclipse 3.7.2を使用しているが、ScalaのIDE 3.0.0.v-2_10、Scalaのワークシートは0.1.4.v-2_10
は[更新:もともとtoBinaryString使用し、この質問が、問題が発生してもtoStringを使用するので、簡略化しました]
これはバグです。ワークシートのメインオブジェクト(最初のオブジェクト)のコードは、実行される前にインストルメントされます。 2つのケースでは、計測の結果は有効なScalaコードではありません。
ただし、コードがメインオブジェクトの最上位にある場合にのみ問題になります。コードを同じファイル内の関数または別のオブジェクトに移動すると、正常に動作します。
Eclipseワークシートはかなりベータ版です。例えば、私が最後にチェックしたのは、関数上の@tailrec
デコレーションを扱うことができませんでした。
これはおそらく、Eclipseのバグまたは制限です。結局のところ、この機能はまったく新しいようで、他にも多くのバグがあります。
(-2).toBinaryString
私には同じエラーがあります。
java.lang.Integer.toBinaryString(-2)
はうまく動作します。
ありがとうございます。私はバグ[ここ](https://github.com/scala-ide/scala-worksheet/issues/160)として報告しています – DNA
これは、メインオブジェクト内のコードブロック{}内にラップするだけで動作します。 – DNA