Ruby基础教程[试读]
4.1 对象
本章会介绍使用 Ruby 操作数据时需要掌握的基础知识,主要有以下四部分内容。 ●对象●类●变量●常量 4.1 对象 在 Ruby 中,表现数据的基本单位称为对象(object)。 对象的类型非常多,我们这里只介绍一些常用的对象。 ◎数值对象 1 、 -10 、 3.1415 等是表示数字的对象,另外还有表示矩阵、复数、素数、公式的对象。 ◎字符串对象 " 你好 "、"hello" 等表示文字的对象。 ◎数组对象、散列对象 表示多个数据的集合的对象。 ◎正则表达式对象 表示匹配模式的对象。 ◎时间对象... 查看全部[ 4.1 对象 ]
4.2 类
Ruby 的类(class)表示的就是对象的种类。 对象拥有什么特性等,这些都是由类来决定的。到目前为止,我们介绍过的对象与其所属类 的对应关系如表 4.1 所示。 表 4.1 对象与类的对象表 备注 “×× 类的对象”,我们一般也会说成“×× 类的实例(Instance)”。所有 Ruby 对象其实都是某个类 的实例,因此在 Ruby 中的对象和实例的意义几乎是一样的。 另外,我们在强调某个对象是属于某个类时,经常会使用“实例”来代替“对象”。例如,我们会说 “字符串对象 "foo" 是 String 类的实例”。 表 4.1 的... 查看全部[ 4.2 类 ]
4.3 变量
在 1.9 节我们提到过,变量就像是对象的名片。 Ruby 中有四种类型的变量。 ● 局部变量(localvariable) ● 全局变量(globalvariable) ● 实例变量(instancevariable) ● 类变量(classvariable) 变量的命名方式决定了变量的种类。 ● 局部变量 以英文字母或者 _ 开头。 ● 全局变量 以 $ 开头。 ● 实例变量 以 @ 开头。 ● 类变量 以 @@ 开头。 除了以上四种类型以外,还有一种名为伪变量(pseudo variable)的特殊变量。A 伪变量... 查看全部[ 4.3 变量 ]
4.4 常量
与变量类似的有常量(constant)。常量的作用和变量一样,是某个对象的“名片”。不过与 变量不同的是,对已经赋值的常量再进行赋值时,Ruby 会做出警告。 执行示例 常量以大写英文字母开头。例如,Ruby 的运行版本(RUBY_VERSION)、运行平台(RUBY_ PLATFORM )、命令行参数数组( ARGV )等,都是 Ruby 预定义的好的常量。关于预定义常量, 我们将会在 B.4.2 节介绍。... 查看全部[ 4.4 常量 ]
4.5 保留字
表 4.2 中的单词,在程序中作为名称使用时会受到限制。这些受到限制的单词,我们称为保 留字。在程序里,如果不小心使用了 end 、 next 等作为变量名,Ruby 会提示我们语法错误。 执行示例 表 4.2 Ruby的关键字一览... 查看全部[ 4.5 保留字 ]
4.6 多重赋值
我们已经介绍过“变量 = 值”这样的变量赋值方法,Ruby 还提供了一个只用一个表达式就 能给多个变量赋值的简便方法——多重赋值。很多情况下我们都会用到多重赋值,在这里举几个 比较典型的例子供大家参考。 4.6.1 合并执行多个赋值操作 有时我们希望把一组的变量同时赋值。 a = 1 b = 2 c = 3 像这样的赋值语句,程序可以简化为只有一行。 a, b, c = 1, 2, 3 这样就能轻松地将 1、2、3 分别赋值给变量 a、b、c。如果对一组不相关的变量进行多重赋 值,程序会变得难懂,因此建议对彼此相关变量进行多重... 查看全部[ 4.6 多重赋值 ]
5.1 什么是条件判断
本章我们将详细讨论一下控制结构之一的条件判断,主要包括以下内容。 ● 什么是条件判断。 ● 条件判断中不可或缺的比较运算符、真假值 A、逻辑运算符。 ● 条件判断的种类及其写法和使用方法。 ----------------------------- A 也称布尔值。——译者注 ----------------------------- 5.1 什么是条件判断 接下来,我们来考虑一下如何将公历转换为平成纪年 B。首先,我们将输入的字符串转换为 数值后减去 1988,最后输出运算结果,结束程序。程序如代码清单 5.1 所示。 代码清单 5.1 ad2heisei.... 查看全部[ 5.1 什么是条件判断 ]
5.2 Ruby 中的条件
在说明条件语句之前,我们首先来看看在 Ruby 中是如何写条件的。 条件与真假值 我们在之前的章节已经介绍过了在条件判断中常用到的比较运算符。等号 = =,不等号 >、< 等都是比较运算符。 比较的结果分为 true 和 false 两种。顾名思义,比较结果正确时为 true,错误时 为 false 。 除 了 比 较 运 算 符 外,Ruby 中 还 有 很 多 可 以 作 为 条 件 判 断 的 方 法。 例 如, 字 符 串 的 empty? 方法,该字符串的长度为 0 时返回 true,否则返回 false 。 p "".... 查看全部[ 5.2 Ruby 中的条件 ]
5.3 逻辑运算符
在判断多个条件表达式时,我们会用到逻辑运算符 && 和 ||。 条件 1 && 条件 2 表示条件 1 为真,并且条件 2 也为真时,则整体的表达式返回真。两者中只要一个返回假 时,则整体的表达式返回假。 相对地, 条件 1 || 条件 2 表示条件 1 为真,或者条件 2 为真时,整体的表达式返回真。两者同时为假时,则整体的 表达式返回假。 还有表示否定的逻辑运算符: ! 条件 表示相反的条件。也就是,条件为假时,表达式返回真;条件为真时,表达式返回假。 例如,我们想判断整数 x 是否在 1 到 ... 查看全部[ 5.3 逻辑运算符 ]
5.4 if 语句
接下来,我们就来看看条件判断语句到底如何使用。if 语句是最基本的条件判断语句,用 法如下: if 条件 then 处理 end ※ 可以省略 then 在这基础上可再加上 elsif 、 else : if 条件 1 then 处理 1 elsif 条件 2 then 处理 2 elsif 条件 3 then 处理 3 else 处理 4 end ※ 可以省略 then Ruby 会按照从上到下的顺序进行判断。首先,条件 1 为真时程序执行处理 1。条件 1 为假时,程序再判断条件 2,若为真时执行处理 2 。同样地,条件 2 为假 ... 查看全部[ 5.4 if 语句 ]
5.5 unless 语句
unless 语句的用法刚好与 if 语句相反。 unless 语句的用法如下: unless 条件 then 处理 end ※ 可以省略 then unless 语句的形式和 if 语句一样。但 if 语句是条件为真时执行 处理, unless 语句则刚好相反,条件为假时执行处理。 下面是使用 unless 的例子(代码清单 5.3)。 这个程序执行后输出“a 不比 b 大 ”。unless 语句的条件 a > b 为假,所以程序执行 了 puts 方法。 unless 语句也可以使用 else 。 unless 条件 处理 1 ... 查看全部[ 5.5 unless 语句 ]
5.6 case 语句
条件有多个时,使用 if 与 elsif 的组合虽然也能达到判断多个条件的效果,但是如果需 要比较的对象只有一个,根据这个对象值的不同,执行不同的处理时,使用 case 语句会使程序 更简单,更便于理解。 case 语句的用法如下: case 比较对象 when 值 1 then 处理 1 when 值 2 then 处理 2 when 值 3 then 处理 3 else 处理 4 end ※ 可以省略 then 本例的比较对象的值有 3 个,但根据实际情况可以 无限增加下去。 还有,when 可以一次指定多个值。下面的示例(代码清单 5.4)... 查看全部[ 5.6 case 语句 ]
5.7 if 修饰符与 unless 修饰符
if 与 unless 可以写在希望执行的代码的后面。像下面这样: puts "a 比 b 大 " if a > b 这与下面的写法是等价的。 if a > b puts "a 比 b 大 " end 使用修饰符的写法会使程序更加紧凑。通常,我们在希望强调代码执行的内容时会使用修饰 符写法。同样地,在使用修饰符写法时,请大家注意程序的易读性。... 查看全部[ 5.7 if 修饰符与 unless 修饰符 ]
5.8 总结
本章介绍了以下内容。 ◎真假值 真假值是条件表达式的返回值。 ● nil 或者 false 时为假 ● 除此以外的值为真 ◎条件判断语句 条件判断语句有: ● if 语句 ● unless 语句 ● case 语句 ◎比较 用 if 语句、unless 语句做比较时,会用到比较运算符(= =,!=,<,> 等)、以 ? 结尾的 方法、逻辑运算符等。 ◎if 语句、unless 语句 两者皆为条件判断的基本语句。 ◎case 语句 在遇到像“根据对象的不同状态,采取不同的处理 ”那样的分情况处理时,我们... 查看全部[ 5.8 总结 ]
