`
inosin
  • 浏览: 90961 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ruby的case语法

    博客分类:
  • ruby
阅读更多
switch/case syntaxes
(remember: Ruby uses "case" and "when"
where others use "switch" and "case"):

# Basically if/elsif/else (notice there's nothing
# after the word "case"):
[variable = ] case
when bool_condition
  statements
when bool_condition
  statements
else # the else clause is optional
  statements
end
# If you assigned 'variable =' before the case,
# the variable now has the value of the
# last-executed statement--or nil if there was
# no match.  variable=if/elsif/else does this too.

# It's common for the "else" to be a 1-line
# statement even when the cases are multi-line:
[variable = ] case
when bool_condition
  statements
when bool_condition
  statements
else statement
end

# Case on an expression:
[variable = ] case expression
when nil
  statements execute if the expr was nil
when Type1 [ , Type2 ] # e.g. Symbol, String
  statements execute if the expr
  resulted in Type1 or Type2 etc.
when value1 [ , value2 ]
  statements execute if the expr
  equals value1 or value2 etc.
when /regexp1/ [ , /regexp2/ ]
  statements execute if the expr
  matches regexp1 or regexp 2 etc.
when min1..max1 [ , min2..max2 ]
  statements execute if the expr is in the range
  from min1 to max1 or min2 to max2 etc.
  (use 3 dots min...max to go up to max-1)
else
  statements
end

# When using case on an expression you can mix &
# match different types of expressions. E.g.,
[variable =] case expression
when nil, /regexp/, Type
  statements execute when the expression
  is nil or matches the regexp or results in Type
when min..max, /regexp2/
  statements execute when the expression is
  in the range from min to max or matches regexp2
end

# You can combine matches into an array and
# precede it with an asterisk. This is useful when
# the matches are defined at runtime, not when
# writing the code. The array can contain a
# combination of match expressions
# (strings, nil, regexp, ranges, etc.)
[variable =] case expression
when *array_1
  statements execute when the expression matches one
  of the elements of array_1
when *array_2
  statements execute when the expression matches one
  of the elements of array_2
end

# Compact syntax with 'then':
[variable =] case expression
when something then statement
when something then statement
else statement
end

# Compact syntax with semicolons:
[variable =] case expression
when something; statement
when something; statement
else statement # no semicolon required
end

# Compact syntax with colons
# (no longer supported in Ruby 1.9)
[variable =] case expression
when something: statement
when something: statement
else statement # no colon required
end

# 1-line syntax:
[variable = ] case expr when {Type|value}
  statements
end

# Formatting: it's common to indent the "when"
# clauses and it's also common not to:
case
  when
  when
  else
end

case
when
when
else
end
分享到:
评论

相关推荐

    ruby语法自整理

    Ruby是一种动态类型的编程语言,以其简洁的语法和强大的功能而受到开发者喜爱。下面是对Ruby语法的详细解析: 1. 变量与常量 - 局部变量:以小写字母或下划线开头,如`var`或`_var`。 - 全局变量:以美元符号`$`...

    Ruby 基础语法 视频教程1

    Ruby是一种面向对象的编程语言,以其简洁、优雅的语法著称。这个"Ruby基础语法视频教程1"涵盖了几个关键的概念,包括变量、变量规则以及表达式。以下是对这些主题的详细解释: 1. 变量(Variables): 在Ruby中,...

    ruby语法

    4. **控制结构**: Ruby有标准的控制结构,如条件语句(`if`、`unless`)、循环(`for`、`while`、`until`、`each`)和开关语句(`case`)。 5. **块与迭代器**: Ruby中的块是一段可重复执行的代码,通常与迭代器...

    Ruby基础语法使用方法全套讲解,风格讲解指南大全

    3. **控制结构**:Ruby提供了if/else条件语句、case语句、循环(while、for、until)和块(block,通常与方法配合使用)。Ruby的块使用`do..end`或`{..}`定义,可以与yield关键字结合实现迭代器功能。 4. **函数与...

    ruby语法基础教程及Ruby教程中文版和安装文件

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程将深入探讨Ruby的基础语法,并介绍如何下载、安装Ruby,以及使用Ruby教程中文版进行学习。 首先,让我们从Ruby的...

    Prorammer ruby 语法截图

    Ruby是一种面向对象、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。在《Prorammer Ruby》一书中,作者深入浅出地介绍了Ruby的基础和高级概念,帮助开发者掌握这一强大工具。以下是一些从书中...

    前端学 Ruby:熟悉 Ruby 语法.pdf

    ### 前端学 Ruby:熟悉 Ruby 语法 #### Ruby 是什么? Ruby 是一种动态的、面向对象的脚本语言,由日本人松本行弘在 1995 年设计并开发。作为一种解释型语言,Ruby 具有简单易懂、功能强大且灵活的特点。Ruby 在 ...

    ruby语法基础教程.pdf

    ### Ruby语法基础教程知识点概览 #### 一、Ruby语言概述 **1.1 Ruby的历史** - **创始人:** Ruby语言是由日本人松本行弘(Matz)在1995年开始开发的一种脚本语言。 - **发展背景:** 在Perl和Python流行的时代背景...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    Ruby是一种面向对象的编程语言,以其简洁、优雅的语法著称,被广泛应用于Web开发,尤其是与Ruby on Rails框架结合使用。"Ruby新手学习书"和"Rails_4_days"这两个资源是为初学者设计的,旨在帮助他们快速掌握Ruby语言...

    ruby开发文档

    Ruby的case语句支持模式匹配。 8. **异常处理**:Ruby使用`begin/rescue/else/ensure`来处理异常,`raise`用于抛出异常,`catch/throw`用于非局部退出。 9. **文件与目录操作**:Ruby的File和Dir类提供了丰富的...

    Ruby详解及安装流程,Ruby是一种高级编程语言,具有简单易学、灵活多变、优雅美丽的语法特点.md

    Ruby是一种高级编程语言,以其简单易学、灵活多变以及优雅的语法而闻名。作为一种面向对象的语言,Ruby支持动态类型和解释执行,使得开发者能够轻松地编写出清晰且具有高可读性的代码。以下是Ruby的一些核心特性和...

    04Ruby 条件判断.docx

    **Ruby** 是一种动态、面向对象的编程语言,以其简洁、易读的语法而著称。它被誉为“程序员最好的朋友”,这得益于其设计思想中的人性化理念,旨在让程序员能够更高效地编写代码。Ruby具备强大的元编程能力,这意味...

    Ruby不完全读书指南.rar

    Ruby的控制结构包括条件语句(如if/else、case)、循环(如while、for、until)以及异常处理(如begin/rescue/ensure)。Ruby的异常处理机制允许开发者优雅地处理错误和异常情况。 Ruby的集合类型包括数组(Array)...

    Best of Ruby Quiz

    1. **基础语法**:涵盖变量、常量、数据类型(如整型、浮点型、字符串、符号、数组、哈希等)、流程控制(if/else、case、循环、break/next等)、函数定义及调用等。 2. **面向对象编程**:Ruby是纯粹的面向对象...

Global site tag (gtag.js) - Google Analytics