范围(Range)无处不在:a 到 z、 0 到 9、等等。Ruby 支持范围,并允许我们以不同的方式使用范围:

  • 作为序列的范围
  • 作为条件的范围
  • 作为间隔的范围

  1. 作为序列的范围

    (1..5)        #==> 1, 2, 3, 4, 5
    (1...5) #==> 1, 2, 3, 4
    ('a'..'d') #==> 'a', 'b', 'c', 'd'

    Range 转化为 Array

    range1 = (1..10).to_a  #=> [, , , , , , , , , ]
    range2 = ('bar'..'bat').to_a  #=> ["bar", "bas", "bat"]

    Range的迭代

    # 指定范围
    digits = 0..9 puts digits.include?(5)
    ret = digits.min
    puts "最小值为 #{ret}" ret = digits.max
    puts "最大值为 #{ret}" ret = digits.reject {|i| i < 5 }
    puts "不符合条件的有 #{ret}" digits.each do |digit|
    puts "在循环中 #{digit}"
    end
  2. 作为条件的范围
    score = 70
    
    result = case score
    when 0..40
    "糟糕的分数"
    when 41..60
    "快要及格"
    when 61..70
    "及格分数"
    when 71..100
    "良好分数"
    else
    "错误的分数"
    end puts result #=> 及格分数
  3. 作为间隔的范围
    范围的最后一个用途是间隔检测:检查指定值是否在指定的范围内。需要使用 === 相等运算符来完成计算
    if ((1..10) === 5)
    puts "5 在 (1..10)"
    end if (('a'..'j') === 'c')
    puts "c 在 ('a'..'j')"
    end if (('a'..'j') === 'z')
    puts "z 在 ('a'..'j')"
    end
    #=> 5 在 (1..10)
    #=> c 在 ('a'..'j')

ruby 数据类型Range的更多相关文章

  1. 雷林鹏分享:Ruby 数据类型

    Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...

  2. Ruby 数据类型

    Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...

  3. ruby 数据类型Number

    Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash 数值类型(N ...

  4. Ruby数据类型

    数字类型 书写整数时,可以根据需要在整数之间任意加入下划线而不会影响数字的值 a=123_45_78 puts a # => 12345678 to_i 截掉小数点之后的数字取整 内置Math模 ...

  5. ruby 数据类型Symbol

    一.符号创建 符号是Symbol类的实例,使用冒号加一个标识符即可创建符号 :a :"This is a symno" 二.符号字符串相互转换 p :symbol.to_s #=& ...

  6. ruby 数据类型String

    一.字符串创建 单引号包含,不支持转义符和内嵌表达式#{}(插值符) str = 'hello world!' 双引号包含 str = "hello world!" 使用%,%Q, ...

  7. 雷林鹏分享:Ruby 范围(Range)

    Ruby 范围(Range) 范围(Range)无处不在:January 到 December. 0 到 9.等等.Ruby 支持范围,并允许我们以不同的方式使用范围: 作为序列的范围 作为条件的范围 ...

  8. Ruby快速入门

    Rb是什么 ? 交互式Ruby(IRB)为实验提供了一个shell.内置IRB shell,你可以立即一行行查看表达式的结果.该工具自带Ruby安装,所以你必须做一些额外的IRB工作无关.只需键入在命 ...

  9. ruby学习笔记(3)- 新手入门

    这里是一个Ruby开发的快速参考指南: Ruby是什么 ? Ruby是一种纯粹的面向对象编程语言.它由日本松本幸创建于1993年. Ruby是一种通用的解释编程语言如Perl和Python. IRb是 ...

随机推荐

  1. Windows 线程消息队列和GetMessage实现内幕

      注:转自http://blog.csdn.net/FreeWave/article/details/2056469?reload.        清晰地讲解了Windows线程的消息队列和GetM ...

  2. C/S与B/S架构的区别和优缺点

    C/S 架构的概念 C/S是Client/Server,即客户端/服务器端架构,一种典型的两层架构. 客户端包含一个或多个在用户的电脑上运行的程序 服务器端有两种,一种是数据库服务器端,客户端通过数据 ...

  3. 【Leetcode】【Easy】Valid Sudoku

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...

  4. python创建项目

    一.准备下载 python3.6.6 https://www.python.org/downloads/windows/(需要注意你的电脑是32位还是64位) mysql 5.1.72 https:/ ...

  5. libxml2用xpath进行查找

    xml文档 <?xml version="1.0" encoding="UTF-8"?> <radios> <radio> ...

  6. 删除所有正在运行和退出的docker实例

    docker ps -a能显示所有docker实例的状态,包含已经退出了的: 加上-q参数,只显示container id 使用这个命令,把docker ps -aq产生的输入作为输入传入到docke ...

  7. Codeforces Round #375 (Div. 2) D. Lakes in Berland (DFS或并查集)

    D. Lakes in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. Android(java)学习笔记20:UDP协议发送数据

    1. UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: package cn.itcast_02; import java.io.IOException; import java.net ...

  9. Tinkoff Challenge - Final Round (ABC)

    A题:从两个保安中间那钞票 #include <bits/stdc++.h> using namespace std; int main() { int a,b,c; scanf(&quo ...

  10. 【翻译】苹果官网的命名规范之 Code Naming Basics-General Principles

    苹果官方原文链接:General Principles 代码命名基本原则:通用规范   代码含义清晰 尽可能将代码写的简洁并且明白是最好的,不过代码清晰度不应该因为过度的简洁而受到影响.例如: 代码 ...