Ruby学习笔记(12)_范围Range
来源:互联网 发布:淘宝主图设计思路 编辑:程序博客网 时间:2024/06/04 23:36
范围(Range)无处不在:a 到 z、 0 到 9、等等。Ruby 支持范围,并允许我们以不同的方式使用范围:
- 作为序列的范围
- 作为条件的范围
- 作为间隔的范围
作为序列的范围
范围的第一个也是最常见的用途是表达序列。序列有一个起点、一个终点和一个在序列产生连续值的方式。
Ruby 使用 ”..” 和 ”…” 范围运算符创建这些序列。两点形式创建一个包含指定的最高值的范围,三点形式创建一个不包含指定的最高值的范围。
(1..5) #==> 1, 2, 3, 4, 5(1...5) #==> 1, 2, 3, 4('a'..'d') #==> 'a', 'b', 'c', 'd'
序列 1..100 是一个 Range 对象,包含了两个 Fixnum 对象的引用。如果需要,您可以使用 to_a 方法把范围转换为列表。尝试下面的实例:
#!/usr/bin/ruby$, =", " # Array 值分隔符range1 = (1..10).to_arange2 = ('bar'..'bat').to_aputs "#{range1}"puts "#{range2}
结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[“bar”, “bas”, “bat”]
#!/usr/bin/ruby# -*- coding: UTF-8 -*-# 指定范围digits = 0..9puts digits.include?(5)ret = digits.minputs "最小值为 #{ret}"ret = digits.maxputs "最大值为 #{ret}"ret = digits.reject {|i| i < 5 }puts "不符合条件的有 #{ret}"digits.each do |digit| puts "在循环中 #{digit}"end
结果:
true
最小值为 0
最大值为 9
不符合条件的有 [5, 6, 7, 8, 9]
在循环中 0
在循环中 1
在循环中 2
在循环中 3
在循环中 4
在循环中 5
在循环中 6
在循环中 7
在循环中 8
在循环中 9
作为条件表达式
范围可以用在 case 语句中:
#!/usr/bin/ruby# -*- coding: UTF-8 -*-score = 70result = case scorewhen 0..40 "糟糕的分数"when 41..60 "快要及格"when 61..70 "及格分数"when 71..100 "良好分数"else "错误的分数"endputs result
结果:
及格分数
作为间隔的范围
范围的最后一个用途是间隔检测:检查指定值是否在指定的范围内。需要使用 === 相等运算符来完成计算。
#!/usr/bin/ruby# -*- coding: UTF-8 -*-if ((1..10) === 5) puts "5 在 (1..10)"endif (('a'..'j') === 'c') puts "c 在 ('a'..'j')"endif (('a'..'j') === 'z') puts "z 在 ('a'..'j')"end
结果:
5 在 (1..10)
c 在 (‘a’..’j’)
阅读全文
0 0
- Ruby学习笔记(12)_范围Range
- ruby学习笔记(6)--范围
- ruby入门_范围
- Ruby学习笔记_单元测试
- ruby学习之Range
- Ruby学习笔记_对象过程
- Ruby学习笔记_异常处理rescue
- Ruby学习笔记(03)_变量
- Ruby学习笔记(04)_判断
- Ruby学习笔记(05)_循环
- Ruby学习笔记(07)_块
- Ruby学习笔记(08)_模块Module
- Ruby学习笔记(09)_数组
- Ruby学习笔记(13)_迭代器
- Ruby学习笔记(14)_异常
- Ruby学习笔记(16)_面对对象
- Ruby学习笔记(18)_冒号用法
- Ruby学习笔记(19)_继承
- 记录一次SVN服务器搬迁(windows-Linux)
- JavaScript 计算时间差
- 7-2 两个有序链表序列的交集
- 不求甚解-luence
- FTP 被动模式搭建
- Ruby学习笔记(12)_范围Range
- Linux 查看iptables ming
- Failed to read candidate component clas,java.lang.IllegalArgumentException
- 7-3 jmu-ds-单链表的基本运算
- 粘合多款产品的微服务架构 阿里云函数计算再次升级
- Python:递归遍历目录,统计目录大小,并以列表的形式返回所有py文件
- MFC添加弹出菜单,使弹出菜单某项不可用变灰
- 微信小程序代理怎么选
- 机器学习实战笔记(第二章:k近邻算法)