最重要区别

1

symbol存入内存后,始终存在,如果不进行垃圾收集,可能导致内存泄漏。

String只会存在于某个创建它的作用域内。即有生命周期的。

2.唯一性。

\\进入控制台
>"asd".object_id
>"asd".object_id
\\上面的string的object_id不同,证明上面2个字符串是储存在不同内存位置的2个独立的字符串。
>:asd.object_id
>:asd.object_id
\\上面的:asd的object_id相同,:asd是唯一的。

3 Symbol是一个符号,它不能像string一样合并。

05-11 13:48