一.符号创建

符号是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;实际应用中,如枚举值,关键字(散列表关键字,方法的参数)等情况都会选择使用符号

转载于:https://www.cnblogs.com/wf0117/p/8908520.html

ruby 数据类型Symbol相关推荐

  1. php解析js的 arraybuffer_JS的所谓的第七种数据类型Symbol

    首先,为什么说叫所谓呢?因为在2007年之前Js给予我们typeof解析数据类型的一共有六种(一直有争议,但是我们暂时就按typeof来算) 'function''Number''Object''bo ...

  2. ES6新数据类型Symbol

    Symbol 今年最火的莫过于 ES6 + Babel 了.ES6 引入了一些很实用很强大的特性和一些语法.今天说的 Symbol 就是其中一个. 对于这个新特性,很多人估计很少使用它,尤其是可见性封 ...

  3. 理解JavaScript基本数据类型symbol

    symbol 概念 symbol是一个ES6标准种新增的一种基本数据类型,在JavaScript中,共有七种基本数据类型:string.number.bigint.boolean.null.undef ...

  4. es6 新增数据类型Symbol

    es6在string number boolean null undefined object之外又新增了一种Symbol类型. Symbol意思是符号,有一个特性-每次创建一个Symbol值都是不一 ...

  5. 【ES6】JS第7种数据类型:Symbol

    [ES6]JS第7种数据类型:Symbol 一.Symbol的由来 二.Symbol的涵义 三.Symbol的判等 四.Symbol的运算与转化 查看更多ES6教学文章: 参考文献 引言:我们知道JS ...

  6. 听说ES6中新增了能够与众不同的Symbol数据类型

    前言 小伙伴们大家好.不知道大家有没有遇到这样一种情况:在我们日常开发中,有时候可能会用到一些别人提供的对象,并且业务需要想要在这个对象的基础上进行一些扩展,添加一些属性或方法等.这个时候如果我们不了 ...

  7. ES6新增数据类型:Symbol

    [学习es6新增的数据类型 Symbol] 1.symble 的作用 symbol 是 es6 新增的一个基本的数据类型,定义唯一值的:一般用于给对象添加私有属性. 2.symble 的用法 < ...

  8. ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries......

    2015年6月17日 ECMAScript 6发布正式版本 前面介绍基本语法,  后面为class用法及属性方法.set.symbol.rest等语法. 一.基本语法:  1.         定义变 ...

  9. ES6 Symbol的应用场景

    一.简介 具体使用请参考:API ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值.它是 JavaScript 语言的第七种数据类型,前六种是:undefined.null.布尔值(B ...

最新文章

  1. 解析深度学习:卷积神经网络原理与视觉实践
  2. php配置连接sql2005(使用微软官方驱动)
  3. mysql怎样删除上一行_mysql如何删除第一行数据
  4. Vue 里 几个重要的指令
  5. 从镜像安装vs2010MSDN,错误“您没有权限修改为帮助内容存储区指定的位子下的内容......
  6. Notepad++远程连接Linux系统
  7. Asp.Net Core2.0 基于QuartzNet任务管理系统
  8. fold函数_Java中使用Map and Fold进行函数式编程
  9. 转3d视图快捷键_最全Solidworks快捷键,值得收藏!
  10. RedHat 9 Linux SendMail 的配置
  11. 力扣——204. 计数质数
  12. 创业者怎样才能赚到钱?八种最有效创业赢利模式
  13. win10 休眠设置无效_win10休眠设置无效的解决教程
  14. 视频问答社区VYou宣布关闭,问答社交模式会走向哪?
  15. 如何设计神经网络结构,如何设计一个神经网络
  16. office2010/2013/2016安装过程提示问题Office 16 Click-to-Run Extensibility Component
  17. Android地址(省市区)、日期、时间滚轮选择器简单封装
  18. 《Android源码设计模式》之迭代器模式
  19. 除了爱你的人,这个世界没人会记得你
  20. Ubuntu下VS code空格间距很小解决办法

热门文章

  1. Delphi中的异常处理
  2. 关于多属性查找问题的sphinx解决方案
  3. 【vue开发问题-解决方法】(五)vue Element UI 日期选择器获取日期格式问题 t.getTime is not a function
  4. 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法
  5. IDEA 2019.3新建项目找不到Maven的解决方法
  6. python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
  7. SQL Server中的“描述表”等效什么?
  8. 在Bash中重定向stderr和stdout
  9. (配置消息转换器)解决后台返回json数据到前台时页面时中文显示乱码问题
  10. 获取项目中的文件流InputStream