一、类的定义、类的实例方法
二、特定对象的方法
在Ruby里,我们可以为一个对象单独定义方法
三、重定义方法
从下面代码可以看出,后面的定义会覆盖前面的定义
四、重新打开类
Ruby里我们可以再打开一个类,向这类添加方法,有点像C#里的分部类,但不用加特别标记.
我们一般不要拆开类的定义,因为那样不好理解,拆开类的一个原因是将它们分散到多个文件里。
五、实例变量
这个前面有说过,这里补充一下
实例变量主要是用来记录单个对象的状态。Ruby的实例变量有以下特点
- 以@开头
- 只对单个对象可见
- 不管在类的任何地方定义,在别的地方使用都是同一个
六、初始化对象状态
类似其它语言的构造函数
七、更好的属性读写,=号的威力
上面我们可以看到可以用多种方法对属性都写操作,但最熟悉和方便的,还是向其它语言一样,对属性直接赋值,然后读取
语法糖
语法糖就是指特别的规则,不符合常规的写法,Ruby提供了调用写方法的语法糖,当解释器看到age = 时,会忽略等号前面的空格,并且单参数的方法是可以省略括号,所以也可以这样
因为有了=的威力,我们可以在赋值时做自己的处理,有点像.net里的{get;set;}
八、自动生成属性的读写操作attr_*
如果每个简单的属性都像上面那样定义,是一件很繁琐的事情,还好Ruby提供了自动生成读写操作的方法,看下表
方法名 | 效果 | 例子 | 等价的代码 |
attr_reader | 读方法 | attr_reader :age | def age @age end |
attr_writer | 写方法 | attr_writer :price | def age= (age) @age=age end |
attr_accessor | 产生读写方法 | att_accessor :age | def age @age end def age= (age) @age=age end |
attr | 产生读方法和可选的写方法(如果第二个参数是true) | 1. attr :age 2. attr :age, true |
1. 参见attr_reader 2. 参见attr_accessor |
九、类方法
类是特殊的对象,是唯一可以创建新对象的一类对象
定义是,在方法前加上类名
类方法有两种调用方式:
- Person.oldest()
- Person::oldest()
十、继承
Ruby里用 < 实现继承
本文作者: 王德水
发表评论
-
一步一步学Ruby(十九): Hash
2009-05-06 09:39 1228一、Hash的定义和赋值 Hash代表键值对的集合,Ru ... -
一步一步学Ruby(十八):数组
2009-05-06 09:39 1019一、数组定义和基本操作 1. 数组的定义和其它 ... -
一步一步学Ruby(十七):Ruby动态特性
2009-05-06 09:37 1381Ruby中的一切都是动态的 ... -
一步一步学Ruby(十六):符号
2009-05-06 09:34 1001一、符号的定义 符号是Ruby内建类Symbol的实例, ... -
一步一步学Ruby(十五):错误处理和异常
2009-05-06 09:33 1002一、常见异常 异常名 常见原因 怎样抛出 ... -
一步一步学Ruby(十四): self和作用域
2009-05-06 09:32 1176一、默认对象或当前对象是self 为了知道哪个对象是当前 ... -
一步一步学Ruby(十三):Ruby模块
2009-05-06 09:31 1206Class类是Module的子类,类是一种特殊形式的模块,这个 ... -
一步一步学Ruby(十一):控制语句
2009-05-06 09:14 989一、比较语句 大部分和其他的语言一样,这里注意<= ... -
一步一步学Ruby(十):Ruby正则表达式(下)
2009-05-06 09:08 2832本文内容: 贪婪量词和不贪婪量词 锚 前视断言 ... -
一步一步学Ruby(九):Ruby正则表达式(上)
2009-05-06 09:04 1273先推荐一个在线的Ruby正 ... -
一步一步学Ruby(八):字符串表达式
2009-05-06 09:03 1257Ruby中,内置很多对字符串操作的方法,下面我们看看最主要的一 ... -
一步一步学Ruby(七):数学表达式
2009-05-06 09:02 917我们知道,在计算机的最底层,是完全基于数据的,我们编写程序,就 ... -
一步一步学Ruby(六):方法定义及调用
2009-05-06 09:01 849一、方法定义 过程式方法 Ruby虽 ... -
一步一步学Ruby(五): Class, Module, Object,Kernel的关系
2009-05-06 09:01 12471. Class, Module, Object,Kernel ... -
一步一步学Ruby(四):Ruby标准类型
2009-05-06 09:00 1015Ruby 的标准类型包括数字(Numeric)、字符串(Str ... -
一步一步学Ruby(三): Ruby代码注释
2009-05-06 08:59 2186本文内容 单行注释 多行注释 特殊处理 ... -
一步一步学Ruby(二):变量,常量
2009-05-06 08:57 1236本文内容 变量 变量范围 伪变量 常量 ... -
一步一步学Ruby(一): Ruby介绍
2009-05-06 08:56 1587文章摘要 Ruby是如何来的 准备 ...
相关推荐
- **方法与赋值**:Ruby允许定义自定义方法,甚至可以在现有类的基础上添加新方法,支持多重返回值。 - **后缀运算**:通过`?`检查方法结果是否为真,`!`用于立即修改对象状态,增强代码的可读性和表达力。 - **...
Ruby学习资源,包含16个ruby文件,含代码,一步一步学习ruby,以及对应的html官方文档资源。 Ruby学习资源,包含16个ruby文件,含代码,一步一步学习ruby,以及对应的html官方文档资源。 Ruby学习资源,包含16个ruby...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
对于基于 Debian 的系统(如 Ubuntu),可以使用 `apt-get` 命令来安装 Ruby: ```bash sudo apt-get install ruby-full ``` ##### Ruby 在 Windows 上的安装 在 Windows 系统上安装 Ruby 可以通过访问 Ruby 官方...
### 从 Java 到 Ruby:每位管理者应知之事 #### 引言 随着技术的不断发展,编程语言也在不断地演进。对于很多企业来说,选择合适的技术栈是至关重要的一步。《从 Java 到 Ruby:每位管理者应知之事》这本书正是为了...
4. **闭包和上下文**:理解块、Proc和Lambda如何捕获并保留其定义时的上下文,是掌握Ruby高级特性的重要一步。 5. **元编程**:Ruby允许在运行时修改自身,这被称为元编程。例如,你可以动态添加方法、修改类的行为...
在Ruby-chess中,AI可能会使用Minimax算法配合Alpha-Beta剪枝,来预测对手的可能走法,评估每一步棋的得分,从而做出最佳决策。 用户交互方面,Ruby-chess可能通过命令行界面(CLI)进行,用户输入棋步,程序解析并...
Ruby中的链表奥丁项目-链接列表目录信息在该项目中,使用Ruby实现了链表。 运行该程序所需的所有文件都在此存储库中,其中包含“说明”部分中的说明。 该程序是使用Ruby v2.6.3p62构建的。状态至此,项目完成。指示...
Ruby下一步 Ruby其次是transpiler和polyfills的在旧版本和替代实现支持最新的和即将推出的Ruby功能(API和语法)的集合。 例如,您可以在Ruby 2.5或使用模式匹配和Kernel#then 。 谁可能对Ruby Next感兴趣? 想要...
例如,在Ubuntu或Debian系统中,可以通过以下命令安装Ruby: ```bash sudo apt-get update sudo apt-get install ruby-full ``` - **验证安装**:安装完成后,可以在命令行中输入`ruby -v`来确认Ruby是否已正确...
在Ruby编程语言中,调试是理解代码运行过程和查找错误的关键步骤。`Pry` 和 `Byebug` 是两个非常强大的工具,它们结合起来可以提供一个高效、直观的交互式调试环境。`Pry` 是一个替代 IRB(Interactive Ruby)的 ...
类可以拥有`make_move`这样的实例方法,用于处理玩家的每一步操作。 5. **游戏循环(Game Loop)**:游戏的核心是一个无限循环,直到游戏结束。循环中,玩家轮流进行移动,每次移动后检查游戏状态,如果游戏结束,...
2. 第二段代码基于上一步查询的结果 `support_amount_a` 进行二次查询,获取 `ChangeValue` 表中对应的价格。 #### 4. 发送POST请求 在开发过程中,经常需要通过命令行发送HTTP请求,Ruby提供了多种方式来实现这一...
### Refactoring Ruby:关键知识点解析 #### 一、Refactoring 的意义与重要性 在软件开发过程中,重构(Refactoring)是一种重要的维护手段和技术实践。它指的是在不改变软件外部行为的前提下,对代码进行结构上的...
### Ruby入门例子详解 #### 一、环境搭建与配置 在开始之前,我们需要确保已经安装了以下组件: - **Ruby**: 版本为1.8.5。 - **Rails**: 版本为1.1.6。 - **MySQL**: 版本为5.0。 - **gem**: 版本为0.9.0。 ...
这一步将编译好的Ruby二进制文件和其他资源安装到系统默认的位置,通常是`/usr/local/bin`,使得全局可访问。 7. **验证安装**:安装完成后,可以在终端输入`ruby -v`来查看当前系统的Ruby版本,如果显示为2.3.1,...
总之,为了搭建和管理Redis-Cluster,安装Ruby是必不可少的一步。通过RVM进行版本管理,确保`redis-trib.rb`脚本的正常运行,从而轻松创建和维护你的Redis分布式集群。在实际操作过程中,如果有任何疑问或遇到问题,...
Ruby是一种面向对象的、动态类型的编程语言,常用于开发Web应用程序和系统管理工具。它以其简洁、优雅的语法和强大的元编程能力而受到开发者喜爱。在本案例中,"ruby 安装包"指的是用于安装Ruby环境的软件包,这通常...
最后一步,"迁移数据库到mysql里面",实际上指的是运行数据库迁移,将数据库结构的变化应用到实际数据库中。在Ruby on Rails中,`rake db:migrate`命令就是用来做这个的。它会检查所有未执行的迁移,并按照时间戳...
3. **解压与编译**:使用`tar -zxvf ruby-2.3.0.tar.gz`命令解压缩文件,然后进入解压后的目录执行`./configure`配置,这一步会检查系统环境并生成合适的Makefile。接着,运行`make`进行编译,最后用`sudo make ...