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

刚开始学习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 基本的数据类型,主要参考《Ruby编程语言》。Ruby支持的数据类型包括基本的Number、S...
    零小白阅读 12,199评论 0 11
  • 在本教程中,将探讨使用Ruby开始编程所需的基本语法,以及如何在30分钟内快速入门学习并使用Ruby编程语言。 注...
    易百教程阅读 7,323评论 1 36
  • 一、字符串在C#中,字符串是一系列不可修改的Unicode字符,创建字符串后,就不能修改它。要创建字符串,最常用的...
    CarlDonitz阅读 1,298评论 0 2
  • 假设你正在为你的产品增加一项新需求。正在编写新需求代码时,突然出现了一起客户投诉的Bug。这时,你不得不暂时放下手...
    Jimmy_L_Wang阅读 462评论 0 0
  • 陆陆续续写了很多女人,远离喧嚣城市的张小姐,再也无法遇见的周小姐,爱抱着那个臭臭的猪头抱枕的邱小姐。确是不敢写杜小...
    指玄阅读 457评论 0 1