2012-03-01 90 views
1

可能重複:
Practical examples of using symbols in Scala?爲什麼Scala需要符號?

什麼是具有Scala的符號,如果字符串是不可變的原因是什麼?在我認識的符號被用於身份很重要時,這意味着這些符號被禁用,並且具有相同字符值的兩個符號將是同一個對象。但是,如果字符串是來自Java語言(它們是不可變的,並且是被實現的),那麼Scala中的字符串是不是已經這樣做了?

如果我有誤解符號或可以提供關於他們爲什麼需要/用我會很樂意去學習:)

+0

Java字符串不一定是被禁用的。字符串文字是。 '「這是大寫字母」.toUpperCase()'不是。 – 2012-03-01 18:36:49

回答

1

我要說相反的詳細信息:當只有身份是很重要的符號使用。具有相同名稱的兩個符號總是指相同的實例,因此可以比較這些參考而沒有風險。

符號可以用作例如輕量級枚舉。

+0

當然,謝謝。我混淆了這兩個。我更新了這個問題 – LuckyLuke 2012-03-01 17:33:19

+2

這不是一個枚舉,因爲你可以錯誤地引入新的值(與真正的枚舉或密封特徵相反)。 – paradigmatic 2012-03-01 17:36:20