如果字符串是不可变的,在Scala中使用符号的原因是什么?在我知道身份很重要时使用符号之后,这意味着符号被中断,并且具有相同字符值的两个符号将是同一个对象。但是,如果字符串来自Java语言(它们是不可变的和实例化的),那么Scala中的字符串是否已经完成了?
如果我误解了符号,或者您可以提供有关他们需要/使用的原因的更多信息,我将很乐意学习:)
答案 0 :(得分:1)
我会说相反:当只有身份很重要时才使用符号。具有相同名称的两个符号将始终引用相同的实例,因此可以无风险地比较这些引用。
例如,可以使用符号作为轻量级枚举。