一、数组定义和基本操作
1. 数组的定义和其它语言一样,Ruby里的数组并不限定类型.
x=[1,2,3,4] puts x[2] #输出3 x[2]+=1 puts x[2] #输出 4 x[2]="Jack "*3 #输出 JackJackJack
2. 数组可以不设初始值,可以使用<< 和pop的操作,后进先出
x=[] x<<"Jack " x<<"Tom " x<<"Crystal " puts x[2] #输出 Crystal x.pop puts x[x.length-1] #输出 Tom
3. 可以把数组连接在一起
x=["Jack ","Better ","Man "] puts x.join #输出 JackBetterManx=["Jack ","Better ","Man "] puts x.join(', ') #输出: Jack, Better, Man
4. 字符串拆分为数组
puts "Jack is better man ".scan(/\w/).join(", ") #输出 J,a,c,k,i,s,b,e,t,t,e,r,m,a,nputs "www.cnblogs.com ".split (/\./).inspect #输出:["www", "cnblogs", "com"]Insepct是显示一个对象的变量,用P也可以http://blog.12spokes.com/articles/2008/03/15/ ruby-tip-stop-using-puts-object-inspect%E2%80%94use-p-instead
p "Jack Tom Crystal ".split (/\s/) #输出 ["Jack", "Tom", "Crystal"]
二、数组方法
1.数组迭代
[1,"jack ",2.0, 4].each{|x| print x.to_s+"! "} #输出 1!jack!2.0!4!
2.批量改变数组的值collect
p [1,"jack ",2.0, 4].collect{|x| x*2} #输出: [2, "jackjack", 4.0, 8]
3.数组合并
a=[1,2,3] b=["jack ","crystal "] c=a+b p c #输出: [1, 2, 3, "jack", "crystal"]
4. 数组相减
a=[1,2,3,4,5] b=[2,3] c=a-b p c #输出 [1, 4, 5]
5.检查数组是否为空
x=[] puts "It's empty " if x.empty? #输出: It's empty
6.检查数组是否包含某值
x=[1,2,3] puts x.include?("jack ") #输出:false puts x.include?(2) #输出: true
7.first和last存取元素
x=[1,2,3,4] puts x.first #output: 1 puts x.last #output: 4 puts x.first(2).join("- ") #output: 1-2 puts x.last(2).join("- ") #output: 3-4
8. 反转数组
x=[1,2,3,4] puts x.reverse.inspect #output:[4, 3, 2, 1]
本文作者:王德水
发表评论
-
一步一步学Ruby(十九): Hash
2009-05-06 09:39 1228一、Hash的定义和赋值 Hash代表键值对的集合,Ru ... -
一步一步学Ruby(十七):Ruby动态特性
2009-05-06 09:37 1381Ruby中的一切都是动态的 ... -
一步一步学Ruby(十六):符号
2009-05-06 09:34 1001一、符号的定义 符号是Ruby内建类Symbol的实例, ... -
一步一步学Ruby(十五):错误处理和异常
2009-05-06 09:33 1002一、常见异常 异常名 常见原因 怎样抛出 ... -
一步一步学Ruby(十四): self和作用域
2009-05-06 09:32 1176一、默认对象或当前对象是self 为了知道哪个对象是当前 ... -
一步一步学Ruby(十三):Ruby模块
2009-05-06 09:31 1206Class类是Module的子类,类是一种特殊形式的模块,这个 ... -
一步一步学Ruby(十二):Ruby类
2009-05-06 09:30 1069一、类的定义、类的实例方法 二、特定对象的方法 ... -
一步一步学Ruby(十一):控制语句
2009-05-06 09:14 989一、比较语句 大部分和其他的语言一样,这里注意<= ... -
一步一步学Ruby(十):Ruby正则表达式(下)
2009-05-06 09:08 2832本文内容: 贪婪量词和不贪婪量词 锚 前视断言 ... -
一步一步学Ruby(九):Ruby正则表达式(上)
2009-05-06 09:04 1273先推荐一个在线的Ruby正 ... -
一步一步学Ruby(八):字符串表达式
2009-05-06 09:03 1257Ruby中,内置很多对字符串操作的方法,下面我们看看最主要的一 ... -
一步一步学Ruby(七):数学表达式
2009-05-06 09:02 917我们知道,在计算机的最底层,是完全基于数据的,我们编写程序,就 ... -
一步一步学Ruby(六):方法定义及调用
2009-05-06 09:01 849一、方法定义 过程式方法 Ruby虽 ... -
一步一步学Ruby(五): Class, Module, Object,Kernel的关系
2009-05-06 09:01 12471. Class, Module, Object,Kernel ... -
一步一步学Ruby(四):Ruby标准类型
2009-05-06 09:00 1015Ruby 的标准类型包括数字(Numeric)、字符串(Str ... -
一步一步学Ruby(三): Ruby代码注释
2009-05-06 08:59 2186本文内容 单行注释 多行注释 特殊处理 ... -
一步一步学Ruby(二):变量,常量
2009-05-06 08:57 1236本文内容 变量 变量范围 伪变量 常量 ... -
一步一步学Ruby(一): Ruby介绍
2009-05-06 08:56 1587文章摘要 Ruby是如何来的 准备 ...
相关推荐
Ruby的标准类型包括数字、字符串、数组、哈希等,每种类型都提供了丰富的内置方法和操作符,简化了常见数据处理任务。 通过深入理解Ruby的基本特性和核心概念,初学者可以逐步掌握这门语言,利用其灵活性和强大功能...
在Ruby数组中,元素可以通过索引来访问和操作,索引通常从0开始。 ### 数组创建 Ruby提供多种创建数组的方法。最常见的是通过方括号`[]`来创建,例如: ```ruby arr = [1, 2, 3, "four", true] # 创建包含不同类型...
Ruby-2.3.0还在错误处理、字符串处理、数组和哈希操作等方面做了改进,使得编程体验更加流畅。学习和掌握这一版本的Ruby,将有助于开发者更好地利用这个强大的语言进行Web开发、自动化脚本编写、系统管理等各种任务...
- **数组**:数组是Ruby中最常用的数据结构之一,可以存储不同类型的数据项。 - **字符串**:Ruby的字符串支持各种操作,包括拼接、分割、查找等。 - **正则表达式**:Ruby内置了强大的正则表达式引擎,可用于文本...
4. **闭包和上下文**:理解块、Proc和Lambda如何捕获并保留其定义时的上下文,是掌握Ruby高级特性的重要一步。 5. **元编程**:Ruby允许在运行时修改自身,这被称为元编程。例如,你可以动态添加方法、修改类的行为...
4. **数组操作**:在处理子数组时,Ruby 的数组方法如 `shift`、`pop` 和 `slice!` 可能会被用于取出或移除数组中的元素,以模拟操作扑克牌的过程。 5. **运算优先级**:在计算过程中,需要正确处理运算符的优先级...
Ruby的数组支持多种操作,如插入、删除、查找和排序。 2. **哈希(Hash)**:键值对的集合,通过键来查找对应的值。Ruby的哈希是关联数组,提供了快速查找和修改的能力。 3. **链表(LinkedList)**:虽然Ruby内建...
在Ruby-chess中,AI可能会使用Minimax算法配合Alpha-Beta剪枝,来预测对手的可能走法,评估每一步棋的得分,从而做出最佳决策。 用户交互方面,Ruby-chess可能通过命令行界面(CLI)进行,用户输入棋步,程序解析并...
在Ruby中,这通常可以通过二维数组实现,每个元素代表一个格子的状态(空、X或O)。 2. **游戏逻辑(Game Logic)**:游戏的核心在于验证每次移动的合法性以及检查游戏是否结束。这包括检查玩家的移动是否超出边界...
块常用于迭代或与方法配合,如 `each`,允许用户自定义处理每一步的操作。 - **Procs**:Procs 是可以存储和传递的代码块,类似于函数对象。它们可以赋值给变量,作为参数传递,或者作为方法的返回值。`Proc.new` ...
3. **二维数组**:用数组来表示游戏棋盘,每一行和每一列都是一个数组元素,方便读取和更新棋盘状态。 4. **游戏逻辑**:实现游戏规则,包括检查是否有人获胜(行、列、对角线上的三个相同标记)或者游戏是否平局。...
标题中的"chessagain"项目是一个使用Ruby编程语言开发的国际象棋应用,旨在通过实践来提升Ruby技能。描述中的“通过国际象棋演练刷我的Ruby”表明该项目以国际象棋游戏为背景,提供了一种寓教于乐的学习方式,帮助...
每一步,从优先队列中取出距离最小的节点,然后更新与之相邻的节点距离。当目标节点被访问或者优先队列为空时,算法结束。 在Java中实现Dijkstra算法,我们可以使用Java的`PriorityQueue`类作为优先队列,`...
通常,习惯于使用Ruby、Scheme或Haskell等高级语言的开发者会怀念交互式编程环境(REPL),而C语言的编译-运行循环可能显得不太友好。不过,gdb可以作为一种伪REPL,帮助我们更有效地学习C语言。 首先,让我们了解...
《棋:The Odin Project的最终Ruby作业》是学习Ruby编程语言的一个重要实践项目,它源自知名的在线编程教育平台The Odin Project。这个项目旨在通过构建一个完整的国际象棋游戏,帮助学员深入理解Ruby语言的核心概念...
- **Ruby on Rails**:高效开发Web应用,但需掌握Ruby语言。 ### 结论 成为专业的安卓开发者需要时间、耐心和持续的努力。尽管学习路径看似漫长且充满挑战,但通过系统性学习和实践,每个步骤都将变得清晰可行。...
在Ruby中,棋盘通常被实现为二维数组,每个元素代表一个棋盘格子,可以放置不同的棋子。棋子则用类来表示,每个类都包含了棋子的属性(如颜色、位置)以及移动规则。这样的设计体现了面向对象编程的基本原则,使得...
在例子中,我们创建了一个名为`$stack`的数组,然后使用`array_push()`将"C#"和"Ruby"以及一个包含"jsp"和"Asp"的子数组添加到数组的末尾。运行结果显示,这些元素都被成功地添加到了数组的最后。 ```php $stack = ...
在Ruby编程语言中,迭代器扮演着至关重要的角色,它们使得遍历集合(如数组和散列)变得简单而高效。迭代器是一个对象,它能够按照特定顺序访问集合中的每一个元素,...理解和熟练运用迭代器是掌握Ruby编程的关键一步。
学习PHP的过程中,初学者将从基础语法开始,逐步掌握变量、控制结构、数组、字符串处理等基础知识。随着学习的深入,学习者将接触到面向对象编程(OOP)的概念,包括类和对象、继承、多态等高级特性。此外,了解MVC...