范围(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. 爬楼梯C++

    class Solution {public: /** * @param n: An integer * @return: An integer */ int climbStairs(int n) { ...

  2. bat 日期格式设置

    转自:http://hi.baidu.com/awillaway/item/c61f964dc238190ce935044d   日期可以用扩展表示方法,你在cmd运行以下几个命令就明白了: echo ...

  3. html-表单的设计

    一.表单的设计 1.注册表单页面 <html> <head> <title>表单的练习</title> <script> function ...

  4. tampermonkey利用@require调用本地脚本的方法

    比如Tampermonkey上的有个用户脚本a,本来的方法是: 1.直接在Tampermonkey上编辑js,适合高手,但是本人不清楚脚本如何同步,况且不熟练js,在Tampermonkey上写太难了 ...

  5. 开源监控zabbix的搭建

    yum-nginx-php-mysql 1.依赖安装 1.依赖 yum -y install pcre* openssl* 2.php rpm -Uvh https://mirror.webtatic ...

  6. vue-router异步加载组件

    export default { routes: [ { path: '/fund', name: 'FundManagement', component: function(resolve) { r ...

  7. Android(java)学习笔记3:线程的优先级

    1. Java线程的优先级从1到10级别,值越大优先级越高线程默认优先级是5.值越大优先级越高 (1) 继承自Thread类创建线程类: package cn.itcast_04; public cl ...

  8. axios简单了解

    简单介绍 axios是基于客户端的promise,面向浏览器和nodejs 特色 浏览器端发起XMLHttpRequests请求 node端发起http请求 支持Promise API 监听请求和返回 ...

  9. Tarjan的缩点&&割点概述

    What is Tarjan? Tarjan,是一种用来解决图的联通性的一种有效途径,它的一般俗称叫做:缩点.我们首先来设想一下: 如果我们有一个图,其中A,B,C构成一个环,那么我们在某种条件下,如 ...

  10. 简单实现CombineFileInputFormat

    import java.io.DataOutput; import java.io.IOException; import org.apache.hadoop.conf.Configuration; ...