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语法的详细解析: 1. 变量与常量 - 局部变量:以小写字母或下划线开头,如`var`或`_var`。 - 全局变量:以美元符号`$`...
Ruby是一种面向对象的编程语言,以其简洁、优雅的语法著称。这个"Ruby基础语法视频教程1"涵盖了几个关键的概念,包括变量、变量规则以及表达式。以下是对这些主题的详细解释: 1. 变量(Variables): 在Ruby中,...
4. **控制结构**: Ruby有标准的控制结构,如条件语句(`if`、`unless`)、循环(`for`、`while`、`until`、`each`)和开关语句(`case`)。 5. **块与迭代器**: Ruby中的块是一段可重复执行的代码,通常与迭代器...
3. **控制结构**:Ruby提供了if/else条件语句、case语句、循环(while、for、until)和块(block,通常与方法配合使用)。Ruby的块使用`do..end`或`{..}`定义,可以与yield关键字结合实现迭代器功能。 4. **函数与...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程将深入探讨Ruby的基础语法,并介绍如何下载、安装Ruby,以及使用Ruby教程中文版进行学习。 首先,让我们从Ruby的...
本教程旨在为初学者提供一个全面的Ruby语法基础指导,帮助他们快速入门并掌握这门语言的核心概念。 **前言** Ruby语言因其简洁、优雅的语法和强大的元编程能力而受到程序员的欢迎。它的设计哲学是强调开发者的生产...
Ruby是一种面向对象、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。在《Prorammer Ruby》一书中,作者深入浅出地介绍了Ruby的基础和高级概念,帮助开发者掌握这一强大工具。以下是一些从书中...
### 前端学 Ruby:熟悉 Ruby 语法 #### Ruby 是什么? Ruby 是一种动态的、面向对象的脚本语言,由日本人松本行弘在 1995 年设计并开发。作为一种解释型语言,Ruby 具有简单易懂、功能强大且灵活的特点。Ruby 在 ...
### Ruby语法基础教程知识点概览 #### 一、Ruby语言概述 **1.1 Ruby的历史** - **创始人:** Ruby语言是由日本人松本行弘(Matz)在1995年开始开发的一种脚本语言。 - **发展背景:** 在Perl和Python流行的时代背景...
Ruby是一种面向对象的编程语言,以其简洁、优雅的语法著称,被广泛应用于Web开发,尤其是与Ruby on Rails框架结合使用。"Ruby新手学习书"和"Rails_4_days"这两个资源是为初学者设计的,旨在帮助他们快速掌握Ruby语言...
Ruby的case语句支持模式匹配。 8. **异常处理**:Ruby使用`begin/rescue/else/ensure`来处理异常,`raise`用于抛出异常,`catch/throw`用于非局部退出。 9. **文件与目录操作**:Ruby的File和Dir类提供了丰富的...
Ruby是一种高级编程语言,以其简单易学、灵活多变以及优雅的语法而闻名。作为一种面向对象的语言,Ruby支持动态类型和解释执行,使得开发者能够轻松地编写出清晰且具有高可读性的代码。以下是Ruby的一些核心特性和...
**Ruby** 是一种动态、面向对象的编程语言,以其简洁、易读的语法而著称。它被誉为“程序员最好的朋友”,这得益于其设计思想中的人性化理念,旨在让程序员能够更高效地编写代码。Ruby具备强大的元编程能力,这意味...
Ruby的控制结构包括条件语句(如if/else、case)、循环(如while、for、until)以及异常处理(如begin/rescue/ensure)。Ruby的异常处理机制允许开发者优雅地处理错误和异常情况。 Ruby的集合类型包括数组(Array)...
1. **基础语法**:涵盖变量、常量、数据类型(如整型、浮点型、字符串、符号、数组、哈希等)、流程控制(if/else、case、循环、break/next等)、函数定义及调用等。 2. **面向对象编程**:Ruby是纯粹的面向对象...