美文网首页
Ruby---字符串(String)与符号(Symbol)的区别

Ruby---字符串(String)与符号(Symbol)的区别

作者: HPD_黄霹雳 | 来源:发表于2017-09-08 21:37 被阅读0次

    刚开始学习Ruby的时候,对于String 和 Symbol这两种类型有点疑惑,深入学习后记录他们这两者之间的区别。

    1. 字符串和符号,都是Ruby中表示文本的方式
    p "dog".to_sym  #=>  :dog
    p :dog.to_s   #=> "dog"
    
    2. 相同的符号是一个对象,相同的字符并不一定是一个对象
    p "dog".equal?("dog")  #=> false 
    p :dog.equal?(:dog)    #=> true
    

    符号是不可变的,不能对符号进行修改。两个相同的符号一定是同一个对象。但是两个内容的字符串就不一定是同一个对象了。

    3. 处理符号相比字符串,占用更少的资源 ,性能更优

    因为字符串变量必须具有各种修改其内容的功能,所以字符串的维护和处理的开销就很大。但是有些时候,我们并不需要修改和处理创建的文本信息,这个时候就应该用符号,减少资源开销。

    相关文章

      网友评论

          本文标题:Ruby---字符串(String)与符号(Symbol)的区别

          本文链接:https://www.haomeiwen.com/subject/xbvnjxtx.html