最近、Scalaプロジェクトを2.10から2.11.2に更新しました。
次のコードの場合:
if( x < 1.e-150 ) // conditional ops...
エラーが発生します
eはIntのメンバーではありません
以前は科学的概念は問題なく機能していました。私はそれが2.11のものではないのではないかと思いますが、アップグレードの奇妙さの可能性が高いです。
scalaVersion := "2.11.2"
以前の場所:
scalaVersion := "2.10.3"
何が原因なのか考えられません。私が知っているのは、2.10では正常に機能していたということだけです。
誰かが以前にこの問題を見たことがありますか、または修正を提案できますか?(または新しい問い合わせライン!)
JDK1.7.0_21とを使用していsbt.version=0.13.5
ます。
どんな助けやアイデアもありがたいです。
科学的記数法の構文は次のとおりです。Scalaは浮動小数点数の後にe
(またはE
)と指数が続きます。表示されている問題は、浮動小数点数としてカウントされるものの変更であり、科学的記数法の構文とは適切に関係がありません(ただし、エラーメッセージの混乱を招きます)。
これを確認するには、2.10.4REPLを-deprecation
オンにして起動します。
scala> val x = 1.
<console>:1: warning: This lexical syntax is deprecated. From scala 2.11, a dot
will only be considered part of a number if it is immediately followed
by a digit.
val x = 1.
^
そして確かに、2.11ではこれはまったくコンパイルされません。
1e-150
またはを書くことでまったく同じことを達成でき1.0e-150
ます。どちらも2.10または2.11で機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加