2012-01-13 12 views
4

からプログラミングセクション6.10(ページ151):それはコンパイルされていても、「$」文字を含めることはできませんユーザプログラムで

識別子。そうした場合、Scalaコンパイラによって生成された識別子と名前の衝突が発生する可能性があります。

私はそれがその理由だと確信していますが、なぜ英数字の識別子で「$」文字の使用を防ぐことはできませんか?

+0

[Scalaメーリングリスト](http://www.scala-lang.org/node/199)の1つは、おそらく言語設計に関する質問のためのより良い場所です。 –

+0

ヒントありがとうございました... – PrimosK

答えて

8

Scalaコンパイラによって内部的に生成された識別子の中には、 '$'文字が含まれています。 '$'文字で新しい識別子を作成すると、内部的に生成された文字と衝突し、混乱が生じる可能性があります。 OTOHでは、内部的に生成されたScala文字へのアクセスが必要な場合や、呼び出したいJavaコードでそのような識別子を使用しているために(時にはまれに)、 '$'文字を必要とすることがあります(ただし、また落胆した場合)。

+1

Googleグループのこのトピックに関する[議論](http://groups.google.com/group/scala-debate/browse_thread/thread/abde80085bd01774?hl=en)興味があります)。 – PrimosK

関連する問題