关于ruby中符号和字符串的区别

Python020

关于ruby中符号和字符串的区别,第1张

1,符号字符串,都是ruby中表示文本的方式

他们之间是可以通过to_sym 和 to_s 之间来转换的

:username.to_s

username

'username'.to_sym

:username

2, 相同的符号代表的一定是同一个对象,相同的字符串代表的不一定是同一个对象

这个是最大的区别,符号是不可更改的,字符串是可以修改的、

3,性能上,符号更加占优

正是因为符号不可变,而字符串变量必须具有含有修改其类容的功能,所以系统开销比较大,所以一般遇到不需要修改的文本信息时,建议使用符号。

"abcdefghijklmnopqrstuvwxyz".slice(9, 6)

找第10个字符开始的6个字符 也就是第10到第15个 索引从0开始 所以是9, 6

当然因为这是 ruby 所以我们还可以这么写

"abcdefghijklmnopqrstuvwxyz".slice 9, 6

另外我们还有带叹号版本的 slice 方法 它会返回被截取的部分 同时把原始字符串中被截取的部分删除

s = "abcdefghijklmnopqrstuvwxyz"s.slice! 9, 6 # jklmnop s # abcdefghipqrstuvwxyz