ruby 数据类型Symbol
Posted 难&道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 数据类型Symbol相关的知识,希望对你有一定的参考价值。
一.符号创建
符号是Symbol类的实例,使用冒号加一个标识符即可创建符号
:a
:"This is a symno"
二.符号字符串相互转换
p :symbol.to_s #=> "symbol" p ‘symbol‘.to_sym #=> :symbol
三.符号与字符串的比较
- 符号与字符串的比较,优势在于对内存消耗较少。因为每一个字符串都是一个对象,一个字符串每出现一次Ruby就会创建一个String对象,所以使用字符串的开销非常大,而符号则不会
- 符号是不可变的,不能对符号的进行增、删、改, 但字符串可以
- 符号是唯一的(相同名称的符号object_id是一样的,说明是同一个对象),而字符串不是
- 使用场景区分:如果使用字符串的内容,这个内容可能会变化,使用字符串String;如果使用固定的名字或者说是标识符,则需要使用符号Symbol;实际应用中,如枚举值,关键字(散列表关键字,方法的参数)等情况都会选择使用符号
以上是关于ruby 数据类型Symbol的主要内容,如果未能解决你的问题,请参考以下文章