2012-01-13 38 views
4

編程在斯卡拉 6.10節(第151頁):

標識符在用戶程序中不應該包含「$」字符,即使它會編譯;如果他們這樣做可能會導致名稱與Scala編譯器生成的標識符衝突。

我相信這是一個原因,但爲什麼不阻止字母標識符使用「$」字符的?

+0

其中一個[Scala郵件列表](http://www.scala-lang.org/node/199)可能是關於語言設計問題的一個更好的場所。 – 2012-01-13 15:09:20

+0

感謝提示... – PrimosK 2012-01-13 15:14:11

回答

8

由Scala編譯器內部生成的一些標識符包含'$'字符。如果您使用'$'字符創建新的標識符,則可能會與內部生成的字符發生衝突,從而導致混亂。 OTOH,有時需要'$'字符,無論是在需要訪問內部生成的Scala字符的那些(現在非常罕見)的場合中,還是因爲某人在您希望調用的Java代碼中使用了這樣的標識符(它是合法的,如果也氣餒)。

+1

在Google羣組上有關於此主題的[辯論](http://groups.google.com/group/scala-debate/browse_thread/thread/abde80085bd01774?hl=zh-CN)(如果有人有興趣)。 – PrimosK 2012-01-13 18:12:34