`

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的基本使用方法

    ### Ruby中关于Hash的基本使用方法 #### 一、哈希的概念 哈希(Hash)是一种存储键值对的数据结构,在Ruby中,哈希允许我们通过键(Key)来访问值(Value)。与数组不同,数组的索引是整数型的,而哈希的键可以是...

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

    本文将深入探讨Ruby中Hash的基本操作方法。 首先,理解Hash的基本概念至关重要。Hash是通过一个特定的函数,即哈希函数(hash function),将键映射到一个存储位置,以此实现快速查找。哈希函数通常是一个将任意...

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

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

    ruby中文文档中心资料

    在Ruby中,Web开发最知名的框架是Ruby on Rails,它遵循MVC(模型-视图-控制器)架构模式,简化了Web应用的开发。Rails提供了许多约定优于配置的特性,使得开发者可以更快速地构建功能丰富的网站。 总结起来,"ruby...

    ruby中文手册 chm

    这部分通常是对Ruby内置类库、方法、语法的详细参考,涵盖了标准库的所有模块和类,比如Array、Hash、String等。它提供了每个方法的用法、参数和返回值,是开发者在编写代码时查找特定功能或方法的重要资源。 3. *...

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

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

    在Ruby中创建和使用哈希的教程

    在本教程中,我们将详细介绍如何在Ruby中创建和使用哈希,罗列各种方法和技巧,并解释哈希的特性。 ### 理解哈希的基本概念 在Ruby中,哈希类似于其他编程语言中的字典或关联数组。每个键值对中的键(key)是唯一...

    ruby中文 文档

    5. **字符串和数组**:这两种数据结构在Ruby中非常常用,文档会解释它们的操作和方法,如拼接、查找、替换等。 6. **哈希(Hash)**:Ruby的哈希是一种关联数组,键值对的存储方式,文档会介绍如何创建和操作哈希。...

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

    下面是关于Ruby中Hash哈希类型的一些基本操作方法的详细解释: 1. 创建哈希: - `Hash.new` 用于创建一个新的空哈希,默认值为 `nil`。 - `Hash.new("This is my first hash instance")` 创建一个空哈希,其...

    ruby中文教程(源代码)

    - 函数与方法:Ruby中的函数被称为方法,可以定义在类或模块中,支持块(block)和 Proc 对象。 2. **面向对象编程(OOP)** - 类与对象: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_...

    ruby2.1.6安装文件

    2. **钻石操作符(>>>)**:Ruby 2.1引入了钻石操作符,用于解决多重继承中的方法解析顺序问题。这个符号使得类可以明确指定从哪个父类继承方法,提高了代码的清晰度。 3. **块参数**:这一版本改进了块处理的语法...

    Ruby编程Ruby Programming

    - **变量**:Ruby中的变量无需声明类型,直接赋值即可使用。例如:`name = "John Doe"`。 - **数据类型**: - 字符串(String) - 数组(Array) - 哈希(Hash) - 数字(Numeric) - 布尔值(Boolean) #### ...

    ruby api html

    Ruby API 文档中的 HTML 文件通常会按照类和模块的字母顺序排列,并提供搜索功能以便快速定位所需的信息。每个类或模块的页面会列出其方法、属性和其他相关信息。对于每个方法,都会详细说明参数、返回值和可能的...

    ruby 读取cfg文件

    在本篇文章中,我们将深入探讨如何在Ruby中有效地读取和处理cfg文件,以及如何根据指定的键来获取对应的值。 首先,让我们了解cfg文件。Cfg文件是一种文本文件,常用于存储应用程序的配置信息,如设置、选项或参数...

    ruby实用函数和实例

    在Ruby中,有许多实用的内置函数和方法,这些工具极大地提升了开发者的效率。在这个主题下,我们将深入探讨Ruby的一些关键函数和实例,以及如何在实际编程中应用它们。 首先,我们关注的是"使用Ruby语言实现自动...

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

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

    Ruby-OhmRedis的Objecthash映射库

    在Ruby的世界里,ORM和ODM框架的作用是简化数据库操作,将数据库中的记录映射为对象,反之亦然。ORM通常用于关系型数据库,如MySQL或PostgreSQL,而ODM则用于非关系型数据库,如MongoDB或Redis。Ohm属于后者,它提供...

    Ruby中Hash的11个问题解答

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

Global site tag (gtag.js) - Google Analytics