为什么要使用符号作为hash的键-创新互联

使用符号在比较时即节省时间又节省内存,因为符号仅仅存储一次

成都创新互联是一家专注于成都网站设计、成都做网站、外贸网站建设与策划设计,民权网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:民权等地区。民权做网站价格咨询:18980820575

ruby的符号是一种不可改变的字符串,同一个符号在代码中多次引用时,是指向同一个对象,拥有相同的object id

而字符串是可变的,代码中的相同的内容有时却要分别存储,拥有不同的object id

用字符串作为hash的键,ruby要计算该字符串的hash值,并将其与hash中的其他键的hash进行比较

而用符号作为hash的键,因为符号的不可改变性,ruby仅仅比较该符号的object id是否与hash中的其他键的object id是否相同

当然使用符号也有缺点,ruby会将符号存储在一个符号表中,知道进程结束才会释放,在运行过程中是不会被gc回收的。当符号躲到一定程度就会造成内存的溢出,当然这只是理论情况下,谁又会床在足够多的符号呢

在做字符串比较时,ruby只会比较符号的object id,不会去计算,这会比比较字符串快很多,因为计算时,ruby会调用hash函数计算键的hash值,然后用他与其他的进行比较

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文题目:为什么要使用符号作为hash的键-创新互联
浏览地址:http://bzwzjz.com/article/jjsog.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 高端品牌网站建设 成都h5网站建设 成都做网站建设公司 网站建设改版 定制网站设计 成都商城网站制作 成都网站建设 成都网站制作公司 网站制作 成都网站建设 攀枝花网站设计 专业网站建设 自适应网站建设 成都网站制作 成都网站建设 成都商城网站建设 定制网站建设 网站制作公司 营销型网站建设 成都模版网站建设 外贸网站设计方案 手机网站制作