`

Ruby中Hash按照自然顺序输出

阅读更多
本来打算按照复制的顺序输出,但是结果出乎预料。查了一下,hash本身就是无序的

之后又看到了日本人的一篇帖子
http://gendosu.ddo.jp/redmine/wiki/1/Hash%E3%81%AE%E9%A0%86%E5%BA%8F%E3%82%92%E5%9B%BA%E5%AE%9A%E5%8C%96

ruby1.8 以下,Hash的顺序是不固定的
h = Hash.new
h[:c] = 'c'
h[:b] = 'b'
h[:a] = 'a'

h.each_key do |k|
  p k
end
#=> :c
#=> :a
#=> :b


这里没有按照期望的c、b、a的顺序输出,不过可以借助rails的面封装的 ActiveSupport::OrderedHash 来实现

h = ActiveSupport::OrderedHash.new
h[:c] = 'c'
h[:b] = 'b'
h[:a] = 'a'

h.each_key do |k|
  p k
end
#=> :c
#=> :b
#=> :a
分享到:
评论

相关推荐

    Ruby中Hash哈希结构的基本操作方法小结

    Hash是一种键值对应的数据结构,Ruby中直接带有Hash类来对其提供支持,这里我们整理了Ruby中Hash哈希结构的基本操作方法小结,首先来回顾一下Hash的基本知识:

    ruby2json:简单的在线工具,可将ruby JSONhash控制台输出转换为正确的JSON。 https:ruby2json.herokuapp.com

    Ruby2JSON转换器简单的在线工具,可将ruby JSON /哈希控制台输出转换为正确的JSON。 例如{"ruby"=>"json"}转换为{ "ruby" : "json" }工作流程解析器非常幼稚。 解析过程如下: 拆下线制动器,将线连接成单线。 翻译=...

    Ruby中关于hash的基本使用方法

    主要介绍了Ruby中关于hash的基本使用方法,包括哈希的创建和一些内置方法的使用,需要的朋友可以参考下

    Ruby中的Hash哈希类型基本操作方法小结

    Hash类型在Ruby中就相当于Python的字典,是一个键值对应的集合类型,这里就来整理一下Ruby中的Hash哈希类型基本操作方法小结:

    ruby-hash-syntax:在Emacs中,在经典样式和1.9样式之间切换ruby哈希语法

    ruby-hash-syntax.el 改编自 TextMate 使用的方法,该库提供了一个命令ruby-hash-syntax-toggle ,它尝试在 1.8 和 1.9 哈希样式之间自动转换选定的 ruby​​ 代码区域。 安装 如果您选择不使用方便的包之一,则...

    Ruby常见面试题.pdf

    8. Ruby中的数组(Array)和哈希(Hash)有什么区别?请说明在Ruby中数组和哈希的不同特点。 9. 什么是Ruby中的块(Block)和迭代器(Iterator)?请简要介绍在Ruby中块和迭代器的概念。 10. 在Ruby中如何进行模块...

    ds_hash:Ruby 哈希类扩展

    Ruby Hash类扩展。 安装 gem install ds_hash 通过实例学习 哈希。 deep_key? hash = { :a => { :b => 'b' } } hash . deep_key? :a , :b # return true hash . deep_key? :a , :x # return false 哈希。 deep_...

    ruby-xml-to-hash:Ruby gem 将 XML 文档透明地转换为 Ruby 哈希(以及 JSON ... 及其他)

    这个 Ruby gem 向 Nokogiri XML 节点添加了一个to_hash方法,允许我们将任意 XML 节点转换为 Ruby 哈希,并且还可以将它们序列化为 JSON。 这个 gem 还可以获取属性、处理指令和文档类型声明。 由此产生的哈希是...

    Ruby中Hash的11个问题解答

    特别是Ruby的Hash.不过细细的想想就通了.基本上都是通的Key-Value.除了刚开始不太适应写法没什么大的问题.这个是我在网上看到的一篇日志. 1. 如何创建Hash? 代码如下: x = Hash.new x = {} x = {:a => 1, :b => ...

    利用Hash技术统计C源程序中关键字的频度

    数据结构课程设计,用C语言写的 一、任务描述 扫描一个C源程序,用Hash表存储该程序中出现的关键字,并统计该程序中的关键字出现的度。用线性探测法解决Hash冲突。...⑤输出Hash表,关键词总数,冲突次数

    aHash 是一种使用 AES 硬件指令的非加密哈希算法_rust_代码_下载

    AHash 是目前 Rust中最快的、 抗 DOS 的哈希。AHash专门用于内存中的哈希映射。 AHash 的输出质量很高 因为AHash是keyed hash,每个map会产生完全不同的hash,不知道key是无法预测的。 这可以防止 DOS 攻击,其中...

    hashcat-6.2.6(hash爆破工具)

    内容描述:用于crypto中hash爆破的强大工具。 优势:相较于其他hash工具,具有更快的算力,使用方便简洁。 适用:适用于md5,sha256等典型hash加密方式,反推出所需的源码。

    uthash开源的hash函数实现

    uthash开源的hash函数实现,里面的uthash.h可用

    C开源hash代码uthash

    uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找、插入、删除等待。该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用多个值作为key,无论...

    Ruby简明教程之数组和Hash介绍

    数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据;这和JAVA不同,在JAVA中,数组是存储同一类型数据的结构。 1. 在Ruby中如何定义数组呢? 使用[ ]来框住元素,而元素之间则使用”,”...

    object-dig:这使您可以在JavaScript中使用Ruby的hash#dig之类的方法

    这使您可以在JavaScript中使用Ruby的hash#dig之类的方法。 重复检索与每个键对象相对应的值对象。 安装 $ npm install --save object-dig 用法 var dig = require ( 'object-dig' ) ; var object = { a : { b :...

    常用的hash算法(java实现)

    采用java实现的常用hash算法归总。

Global site tag (gtag.js) - Google Analytics