码迷,mamicode.com
首页 > 其他好文 > 详细

ruby 数据类型Symbol

时间:2018-04-22 20:12:36      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:style   object   同名   标识符   bsp   字符串   不能   ring   列表   

一.符号创建

符号是Symbol类的实例,使用冒号加一个标识符即可创建符号     

:a
:"This is a symno"

 

二.符号字符串相互转换

p :symbol.to_s    #=> "symbol"
p symbol.to_sym    #=> :symbol

 

三.符号与字符串的比较

  1. 符号与字符串的比较,优势在于对内存消耗较少。因为每一个字符串都是一个对象,一个字符串每出现一次Ruby就会创建一个String对象,所以使用字符串的开销非常大,而符号则不会
  2. 符号是不可变的,不能对符号的进行增、删、改, 但字符串可以
  3. 符号是唯一的(相同名称的符号object_id是一样的,说明是同一个对象),而字符串不是
  4. 使用场景区分:如果使用字符串的内容,这个内容可能会变化,使用字符串String;如果使用固定的名字或者说是标识符,则需要使用符号Symbol;实际应用中,如枚举值,关键字(散列表关键字,方法的参数)等情况都会选择使用符号

 

ruby 数据类型Symbol

标签:style   object   同名   标识符   bsp   字符串   不能   ring   列表   

原文地址:https://www.cnblogs.com/wf0117/p/8908520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!