一.数组
1.数组的定义
a = Array.new #定义一个数组a b = Array.new(5) #定义一个含5个nil元素的数组 c = Array.new(5,1) #定义一个含5个1元素的数组 d = [] #定义一个空数组d
2.数组的运算
<< :追加元素
+ :串联方法
- :数组差集
& :数组交集
| :数组并集
* :重复数组,如果*后面是整数,则返回重复整数次的数组,如果是字符串,则返回重复使用该字符串连接数组。
[1,2] << 3 #[1,2,3] [1,2] + [1,2] #[1,2,1,2] [1,2,3] - [3,4] #[1,2] [1,2,3] & [3,4] #[3] [1,2,3] | [3,4] #[1,2,3,4] [1,2] * 2 #[1,2,1,2,1,2] [1,2] * '--' #1--2
3.数组常用方法
a = [1,2,3,4,5,6] a[1] #2 a[0,2] #[1,2,3] a[0..2] #[1,2,3] a[-2,2] #[5,6] a[2] = 7 #数组变成[1,2,7,4,5,6] a[0,2] = [8,9,10] #数组变成[8,9,10,4,5,6]
数组具有所有Enumerable模块所提供的方法:
a = [1,2,3,4,5] a.find_all{|i| i%2==0} #[2,4] a.max #5 a.include?(5) #true a.inject{|sum,i| sum + i} #15
其他的方法:
ary.size或ary.length:返回数组的大小(长度);
ary.concat(other_array):将other_array的元素附加到ary中;
ary.clear:清空数组;
ary.delete(obj):删除数组中与obj相等的元素,如果找到则返回obj,否则返回nil;
ary.delete_at(index):删除指定下标处的元素;
ary.delete_if{|item| block}:删除指定条件的元素;
ary.first和ary.last:返回数组的第一个元素/最后一个元素;
ary.compact:返回一个数组的副本,并删除其中的nil元素;
ary.flattern:如果ary中包含的元素为数组,将不断递归合并,返回一个值包含基本元素的数组;
[1,[2,3],[4,[5,6]],7].flattern #[1,2,3,4,5,6,7]
ary.index(obj):返回数组中第一个等于obj元素的下标;
ary.insert(index,obj):在指定位置插入对象到数组中;
ary.join(separator):合并数组为一个字符串,类似与“*”;
ary.pop和ary.shift:删除数组中最后一个元素/第一个元素;
ary.push(obj):类似于<<方法,将obj添加到数组中;
ary.replace(other_array):使用other_array替换掉ary中的内容;
ary.reverse:返回一个数组反序ary中的元素。
二.散列Hash
1.定义Hash
h = Hash.new h = Hash[1=> 'a',2=> 'b'] h = {a=> '1',b=> '2'}
2.取值赋值
h = {1=> 'a','2'=> 'b'} h[1] #a h['2'] #b h[2] #nil h['2'] = 'c' h['a'] = 'd' h #{1=> 'a','2'=> 'c','a'=>'d'}
3.Hash常用方法
hsh.clear:清空Hash
hsh.delete(key):删除Hash中键key的项;
hsh.delete_if{|key,value| block}:根据指定条件删除元素;
hsh.has_key?(key):判断Hash中是否包含给定的键key;
hshhsh.has_value?(value):判断Hash中是否包含给定的值value;
hsh.index(value):返回Hash中值为value的键,如果有多个只返回第一个,没有返回nil;
hsh.invert:返回逆转Hash的键和值的新Hash;
hsh.keys:返回Hash的键组成的数组;
hsh.values:返回Hash的值组成的数组;
hsh.values_at(keys):返回给定键对应的值组成的数组;
a = {1=>'a',2=>'b'} a.values_at(1,2,3) # ['a','b',nil]
hsh.length:返回Hash中元素的个数;
hsh.merge(other_hash):合并两个Hash,重复的键,other_hash的对应值将hsh的值覆盖;
hsh.replace(other_hash):使用other_hash中的值替换hsh中相同键的值;
hsh.to_a:将Hash转换为数组。
4.查找和迭代
hsh = {'a'=>2,'b'=>1,'c'=>3} hsh.find_all{|key,value| value>1} #[['c',13],['a',2]] hsh.max #返回值最大的元素 hsh.sort_by{|key,value| key} #按键排序 hsh.sort_by{|key,value| value} #按值排序
相关推荐
这个笔记里包含了ruby的整型,字符串,浮点数,布尔等基础数据类型,还有数组,哈希hash的用法, 类的定义,函数方法,以及对象定义,其他高级用法解释,除了笔记记录的语法糖之外,还包含了一些解释性的代码,帮助...
"ruby笔记2ruby笔记2ruby笔记2"可能是指一系列关于Ruby学习的笔记,这些笔记可能涵盖了Ruby的基础概念、核心特性以及进阶话题。在Ruby的学习过程中,理解和掌握以下几个关键知识点至关重要: 1. **面向对象编程...
Ruby的数据类型包括数字、字符串、数组、哈希表、区间和正则表达式。数字可以表示为八进制(前缀0)、十六进制(前缀0x)或二进制(前缀0b)。字符串可以由单引号或双引号包围,数组可以包含不同类型的元素,并且下标从0...
根据提供的“ruby学习笔记”内容,我们可以从中提炼出多个重要的Ruby编程知识点,这些知识点对于初学者来说非常有用。下面将对这些知识点进行详细的解释与扩展。 ### 一、Ruby中的全局变量 Ruby提供了多个特殊变量...
5. **数组与哈希(Arrays and Hashes)**:数组是有序的元素集合,哈希则是一组键值对,两者都是存储和操作数据的重要数据结构。Ruby提供了丰富的操作方法,如遍历、索引、添加和删除元素等。 6. **符号(Symbols)...
- **简洁的语法**:Ruby的语法非常简洁明了,易于理解和学习。 - **丰富的标准库**:Ruby拥有大量的内置库和第三方库,极大地提高了开发效率。 - **强大的元编程能力**:Ruby支持高级的元编程特性,使得开发者能够...
3. `array_operations.rb`:演示了Ruby数组的操作,如遍历、添加元素等。 ```ruby arr = [1, 2, 3] arr.each { |num| puts num } arr puts arr.inspect ``` 4. `hash_usage.rb`:展示了Ruby哈希(Hash)的使用,...
笔记: Ruby会默认返回方法中的最后一个值。...数组[]和哈希表{},而且还有各种各样的函数。 强烈推荐新手入门在线学习网站: http://tryruby.org/ ,简直爽到爆! 各种代码 eg1: 建立一个哈希表 ojs = {}
10. **ActiveSupport**:Rails 的一部分,提供了一系列有用的工具和方法,如时间助手、数组和哈希扩展等。 11. **Webpacker**:在较新的 Rails 版本中,用于集成 JavaScript 和 CSS 资源的管理,取代了以前的 Asset...
3. **转换数据**:将Org元素转换为其他数据结构,如Ruby的哈希、数组,方便进一步处理。 4. **搜索和过滤**:查找特定的Org元素,例如带有特定标签或时间戳的待办事项。 5. **操作元素**:修改元素的属性,如更改...
1. **基础语法**:Ruby的基础元素,如变量、数据类型(整数、浮点数、字符串、布尔值、数组、哈希等)、控制结构(条件语句、循环)以及函数的使用。 2. **面向对象编程**:Ruby是完全面向对象的语言,所以会涵盖类...
2. **基础语法**:介绍变量、常量、数据类型(如整型、浮点型、字符串、数组、哈希等),条件语句(如 if/else、case)、循环结构(如 for、while、until、each)以及控制流(如 break、next)。 3. **函数与方法**...
学习目标 在本练习结束时,您应该能够: 使用哈希表解决编码问题 确定哈希表与替代解决方案相比如何产生更有吸引力的运行时 分组字谜 给定一个字符串数组,将字谜分组在一起。 例子 Input: ["eat", "tea", "tan", ...