2012-03-01 22 views
1

可能性の重複:
Practical examples of using symbols in Scala?Scalaにシンボルが必要なのはなぜですか?

文字列は不変であればスカラ内のシンボルを持っていることの理由は何ですか?アイデンティティが重要なときにシンボルが使用されていることを知った後、これはシンボルがインターナショナルであり、同じ文字値を持つ2つのシンボルが同じオブジェクトであることを意味します。しかし、文字列がJava言語のものであれば(これは不変であり、中止されています)、これはScalaの文字列に対してすでに行われていませんか?

私はシンボルを誤解しているか、あなたは彼らが私が反対だと思います:)

+0

Java文字列は必ずしもインターナショナルである必要はありません。文字列リテラルは次のとおりです。これは大文字です "。toUpperCase()'はそうではありません。 –

答えて

1

学ぶことが幸せになる使用/必要とされる理由の詳細については提供できる場合のみ:アイデンティティが重要な場合にシンボルが使用されているが。同じ名前の2つのシンボルは常に同じインスタンスを参照するため、これらの参照はリスクなしで比較できます。

シンボルは、たとえば軽量の列挙型として使用できます。

+0

もちろん、ありがとう。私は2つを混同しました。私は質問を更新しました – LuckyLuke

+2

間違って新しい値を導入することができるので、本当に列挙型ではありません(実際の列挙型または密封された特性とは対照的に)。 – paradigmatic

関連する問題