数组和Hash对象是统一的,数组只是Hash对象的一种表现形式,Hash对象里包含的元素的key是任意的,而数组里所包含的key是连续的,而且只能够使整数,在同一hash中,索引键必须唯一
Hash对象里的元素都是由两部分组成:key和value两个部分
Hash对象是由一些列在花括号里面的key-value对组成,多个key-value对之间以英文逗号隔开,key和value之间由"=>"隔开,最后一个逗号会被省略
a={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}
p a;
p a["zhansa"]
p a["lisi"]
结果
{"wangwu"=>25, "lisi"=>20, "zhansa"=>40}
40
20
my_hash = Hash.new
puts "Hash对象的长度"+my_hash.size.to_s
my_hash["Java"]=5
p my_hash
my_hash["Ruby"]="aaaa"
p my_hash
输出结果
Hash对象的长度0
{"Java"=>5}
{"Ruby"=>"aaaa", "Java"=>5}
Hash对象的常用方法
length()/size()
delete(key)
include?(key)\has_key?(key)\key?\member? 判断指定的Hash对象是否包含特定的key
keys()
values()
b={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}
p b.length().to_s
p b.include?("zhansa")
p b.keys
p b.values()
输出值
"3"
true
["wangwu", "lisi", "zhansa"]
[25, 20, 40]
Hash对象的迭代
Hash对象支持如下4个常用迭代
each:迭代输出Hash对象里全部项(包括key和value)
each_key 迭代输出Hash对象里全部key
each_pair 迭代输出Hash对象里全部key-value对
each_value 迭代输出Hash对象里全部value
b={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}
b.each do |key,value|
puts "key:"+key+",value:"+value.to_s
end
b.each_key do |key|
puts "key:"+key
end
b.each_value do |value|
puts "value:"+value.to_s
end
b.each_pair do |key,value|
puts "key:"+key+",value:"+value.to_s
end
输出结果
key:wangwu,value:25
key:lisi,value:20
key:zhansa,value:40
key:wangwu
key:lisi
key:zhansa
value:25
value:20
value:40
key:wangwu,value:25
key:lisi,value:20
key:zhansa,value:40
分享到:
相关推荐
简单的赋值会导致两个变量共享同一Hash对象,修改一个会影响另一个。要避免这种情况,可以使用`clone`或`dup`方法创建副本: ```ruby h3 = h2 # 浅复制,改变h3会影响h2 h4 = h2.clone # 深复制,改变h4不会影响h2 `...
### Ruby中关于Hash的基本使用方法 #### 一、哈希的概念 哈希(Hash)是一种存储键值对的数据结构,在Ruby中,哈希允许我们通过键(Key)来访问值(Value)。与数组不同,数组的索引是整数型的,而哈希的键可以是...
在Ruby中,类是对象的蓝图,而对象是类的实例。类定义了对象的属性(或称为实例变量)和行为(或称为方法)。Ruby支持单继承,但通过模块,可以实现一种形式的多继承,即混入。模块可以包含方法和常量,可以通过`...
这部分通常是对Ruby内置类库、方法、语法的详细参考,涵盖了标准库的所有模块和类,比如Array、Hash、String等。它提供了每个方法的用法、参数和返回值,是开发者在编写代码时查找特定功能或方法的重要资源。 3. *...
6. **哈希(Hash)**:Ruby的哈希是一种关联数组,键值对的存储方式,文档会介绍如何创建和操作哈希。 7. **正则表达式(Regexp)**:Ruby内置了强大的正则表达式支持,用于文本匹配和处理。 8. **文件和I/O操作**...
- 函数与方法:Ruby中的函数被称为方法,可以定义在类或模块中,支持块(block)和 Proc 对象。 2. **面向对象编程(OOP)** - 类与对象:Ruby是纯面向对象的语言,一切皆对象。你可以创建自定义类来封装数据和...
一个Hash对象总是有一个默认的值——因为如果在一个Hash对象里没有找到指定的索引(key),将会返回默认值。 创建了Hash对象后,我们就可以像数组那样给他添加/删除项了。唯一不同的是,在数组中的索引只是能整数,...
Ruby FastJSONAPI 是一个专为Ruby对象设计的高性能JSON:API序列化库。它旨在帮助开发者以简洁、高效的方式将Ruby对象转换为符合JSON:API规范的JSON格式,极大地提高了开发效率和应用程序的性能。 JSON:API是一个...
在Ruby的世界里,ORM和ODM框架的作用是简化数据库操作,将数据库中的记录映射为对象,反之亦然。ORM通常用于关系型数据库,如MySQL或PostgreSQL,而ODM则用于非关系型数据库,如MongoDB或Redis。Ohm属于后者,它提供...
### 三、面向对象编程(OOP)在Ruby中的应用 #### 3.1 类与对象 - **类**:用于定义对象的蓝图或模板。 - **实例化**:通过类创建具体的对象。 - **属性与方法**:类中的属性用于存储数据,方法则定义对象的行为。 #...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法著称,深受开发者喜爱。本教程旨在为初学者提供全面的Ruby语言学习指南,包括基础语法、面向对象编程概念、控制结构、数据类型、函数、类和模块等多...
如果你想在你的 Hash 和 Array 对象中添加一个to_dish辅助方法,你可以在你的Gemfile 中 requiredish dish/ext : gem "dish", require: "dish/ext" 在 RubyMotion 中安装 Dish 完全支持 ,使您能够在 Ruby iOS ...
在Ruby编程语言中,哈希(Hash)是一种特殊的数据结构,用于存储键值对(key-value pairs)。在本教程中,我们将详细介绍如何在Ruby中创建和使用哈希,罗列各种方法和技巧,并解释哈希的特性。 ### 理解哈希的基本...
Ruby-RedisObjects是一个非常实用的库,它允许开发者在Ruby应用程序中直接操作Redis数据结构,就像操作Ruby对象一样。这个框架是Ruby社区对ORM(对象关系映射)和ODM(对象数据映射)概念的扩展,适用于NoSQL数据库...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。这份"Ruby中文文档.CHM"是针对初学者的宝贵资源,它将帮助你全面了解并掌握Ruby语言的基础和高级特性。 1. **Ruby语言...
模块可以通过`include`或`extend`引入到其他类或对象中。 三、元编程 1. 动态性:Ruby允许在运行时修改类和对象,如动态添加方法`define_method`,或在运行时改变对象的属性。 2. 方法_missing:此方法允许自定义...