- 浏览: 256938 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
Class类是Module的子类,类是一种特殊形式的模块,这个可看我的这篇文章 一步一步学Ruby(五): Class, Module, Object,Kernel的关系。
我们知道最顶级的类是Object,那么最顶级的模块就是Kernel
我们使用模块的的主要目的是用来组织代码,模块化代码,有点类似命名空间,但却有很大的不同
一、创建和使用模块
用module关键字来定义模块
module没有实例,我们使用时把module混合到类中来使用,我们也可以这么理解,把Module里的内容拷贝一份放到类里,成为类的一部分
我们可以把模块放到一个单独的文件里,然后使用时进行加载,看下面的示例,假设我们有一个project.rb的文件,包含了Project模块
我们将Project混合到Manager类里
注意: 在使用require或load时,请求加载的内容放到引号里,而inclue不是用引号,这是因为require或load使用字符串做为参数,而include使用常量形式的模块名,require和load使用字符串变量也可以.
二、混合进模块的类的方法查找
上面say方法查找路径为 D类-->D类里包含的模块-->C类-->C类包含的模块......>Object-->Kernel,当找到第一个时,搜索停止。
同名方法的查找,后面覆盖前面的
用super提升查找路径(调用查找路径上下一个匹配的方法),同样我们使用super可以调用父类的同名方法,initialize是自动执行
- super 调用时,自动传递当前的参数
- super(),不传任何参数
- super(a,b,c) 传递指定的参数
三、模块和类可以相互嵌套
module也可以包含类,但调用时需要这样使用 模块名::类名.new
本文作者: 王德水
未经同意,禁止转载
发表评论
-
ASP.NET MVC源码现在可以下载了(翻译)
2008-03-22 09:44 941上个月我在blog里介绍了ASP.NET MVC Roadm ... -
ASP.NET MVC+LINQ开发一个图书销售站点
2008-03-29 17:12 1324园子里已经有很多人讲解了其理论知识,网上也有不少示例,但是很多 ... -
Linq to SQL Dynamic 动态查询
2008-04-01 15:09 1053在开发中我们常需要使用动态的条件来组合查询,scotte博客里 ... -
使用ASP.NET 3.5 Extensions管理浏览器历史:使用服务器端
2008-04-08 13:15 620我们知道当我们使用ASP.NET AJAX的一些方便的服务端控 ... -
客户比产品更重要
2008-04-12 15:49 659发现博客园里99%都是技术文章,很少有管理的经验分享 ... -
WPF 全球化和本地化(图解)
2008-04-12 16:15 826当您将自己的产品限制为只能通过一种语言使用时,您便将潜在的客户 ... -
项目经理如何参与任务管理
2008-04-14 17:55 678每个项目经理可能都会 ... -
.NET环境下每日集成
2008-04-24 17:36 1386本系列主要介绍了.Net环境下如何使用CruiseContro ... -
项目经理虚拟管理客户
2008-05-28 11:26 559项目经理做项目时经常 ... -
从中国男足看项目管理
2008-06-16 11:39 431国足1:2 不敌伊拉克后,彻底无缘本届世界杯,我想比赛时和赛后 ... -
敏捷的 "道"
2008-11-19 14:10 508本文摘要 敏捷的路上 ... -
在服务器端保存ViewState
2008-11-20 16:51 5741.比较 Asp.net 的一个强大的功能就是ViewStat ... -
TDD实验2:使用VSTS 的单元测试功能
2008-12-10 08:25 797我们要实现的功能是,发工资时自动向我们发送邮件,如果工资少于1 ... -
TDD Tip:方法内部New出来的对象如何Mock
2008-12-16 00:27 1243解决的问题:方法内部new的对象在测试时希望能够用mock对象 ... -
Web测试:Selenium使用
2008-12-23 10:49 1620<style> .confluenceTable ... -
谈软件协作:君子和而不同,小人同而不和
2008-12-31 18:39 705我们知道现在的软件开 ... -
如何进行ASP.NET MVC 的测试
2009-01-05 00:48 1338本文参考了http://stephenwalther.com/ ... -
如何使ASP.NET MVC Controller易测试呢?
2009-01-05 23:25 983昨天那篇文章如何进行ASP.NET MVC 的测试,虽然通过自 ... -
ASP.NET MVC AJAX的调用
2009-01-10 08:21 3767在ASP.NET MVC beta中我们可以使用Ajax.Be ... -
IIS7 配置ASP.NET 2.0, WCF, ASP.NET MVC
2009-01-16 17:50 4634ASP.NET 2.0 部署 1.首先打开win7 的特性,路 ...
相关推荐
据**TIOBE**指数显示,截至某个时间点,Ruby在全球开发语言排行榜上位列第11位,且预计在短时间内将跻身前十。Ruby的开源性质和强大的社区支持,使其成为软件开发领域的热门选择之一。 #### 二、Ruby的基础知识与...
安装过程中需要注意选择合适的编译器支持,以便能够顺利编译 Ruby 扩展模块。 安装完成后,可以通过命令提示符或 PowerShell 来验证 Ruby 是否成功安装: ```bash ruby -v ``` 如果安装成功,将显示当前安装的 ...
在Ruby编程语言中,调试是理解代码运行过程和查找错误的关键步骤。`Pry` 和 `Byebug` 是两个非常强大的工具,它们结合起来可以提供一个高效、直观的交互式调试环境。`Pry` 是一个替代 IRB(Interactive Ruby)的 ...
- **利用元编程**:利用 Ruby 的元编程能力,如模块混合(mixins)、动态方法定义等特性进行重构。 - **利用动态类型**:通过动态地修改类和对象来优化代码结构。 - **利用代码块和迭代器**:利用 Ruby 强大的迭代器...
5. **gem管理**:Ruby的包管理器是gem,它允许开发者安装、更新和管理各种第三方库。使用`gem update --system`可以升级gem到最新版本,`gem install <库名>`则可以安装特定的库。 Ruby-2.3.0引入了一些重要特性,...
### Ruby的25个编程细节(技巧、实用代码段) #### 1. 使用 `try` 方法处理潜在的异常 在Ruby中,`try` 方法是一个非常有用的功能,它允许我们安全地访问对象的方法或属性,即使该对象为 `nil` 也不会抛出异常。...
从早期的机器语言到汇编语言,再到高级语言如C、C++、Java,以及动态语言如Python、Ruby,每一步都标志着计算机科学的进步。了解这一历史脉络有助于学习者更好地把握Ruby语言在当前编程生态中的位置及其独特价值。 ...
#### 十、模块与命名空间 模块是Ruby中用于组织代码的重要工具,它可以包含方法、常量和类等。 - **模块**:模块可以看作是类的一种特殊形式,主要用于封装一组相关的功能。 - **命名空间**:通过模块可以定义命名...
3. 运行`ruby extconf.rb`来生成Makefile,这一步会根据当前的Ruby环境配置编译选项。 4. 接着运行`make`来编译C扩展。 5. 最后,运行`sudo make install`将编译好的扩展安装到Ruby的扩展目录。 在使用Ruby-FCGI时...
4. **闭包和上下文**:理解块、Proc和Lambda如何捕获并保留其定义时的上下文,是掌握Ruby高级特性的重要一步。 5. **元编程**:Ruby允许在运行时修改自身,这被称为元编程。例如,你可以动态添加方法、修改类的行为...
Ruby-2.5.0是Ruby编程语言的一个版本,它在2018年发布,带来了许多性能优化和新特性。这个`.tar.gz`文件是一个压缩包,它包含Ruby 2.5.0的所有源代码文件,适用于在CentOS 6.5上安装Redmine时使用。Redmine是一款...
3. **配置**:运行`./configure`脚本来配置Ruby的编译环境,这一步会检测系统环境并生成适合的Makefile。 4. **编译**:执行`make`命令,编译源代码生成可执行文件。 5. **测试**:为了确保一切正常,可以运行`...
在Ruby-chess中,AI可能会使用Minimax算法配合Alpha-Beta剪枝,来预测对手的可能走法,评估每一步棋的得分,从而做出最佳决策。 用户交互方面,Ruby-chess可能通过命令行界面(CLI)进行,用户输入棋步,程序解析并...
WebDriver 通过 HTTP 协议与浏览器驱动进行通信,默认情况下 Ruby 的 Net::HTTP 模块设置了一个 60 秒的超时时间。如果页面加载时间超过 60 秒,将会导致超时错误。可以通过以下方式手动调整超时时间: ```ruby ...
在Ruby编程语言中,模块...理解并熟练运用模块是成为Ruby开发者的关键一步,尤其是在构建大型、复杂的应用程序时,模块的重要性更加突出。通过合理地组织和使用模块,可以使代码结构更加清晰,更易于维护和扩展。
1.默认路径安装ruby186-26.exe 2.本地安装watir-1.4.1.gem,执行gem install watir-1.4.1.gem -l 3.本地安装rubygems-update-1.3.4.gem,执行 gem install rubygems-update-1.3.4.gem 4.更新rubygems,执行update_...
Ruby on Rails 是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,使得开发者可以高效地构建功能丰富的Web应用程序。在这个“Ruby on Rails博客程序”中,我们将深入探讨如何在...
Ruby是一种动态类型、面向对象的脚本语言,其语法简洁优雅,特别适合快速开发和原型设计。在这篇知识总结中,我们将深入探讨Ruby中的线程同步和闭包(包括Blocks、Procs、Lambdas和Methods)。 首先,让我们关注...
2. **安装Nginx模块**:使用Passenger提供的命令安装Nginx模块,这一步可能需要root权限。 ```bash rvmsudo passenger-install-nginx-module ``` 安装过程中可以选择自动下载并编译Nginx,也可以指定本地Nginx...
Ruby中的所有基本类型、代码块、函数、类和模块都是对象,而且类是开放的,支持动态添加、更新、删除成员。Ruby的singleton特性使得对象能够拥有独特的功能,便于控制服务类型;Ruby还支持mix_in模块,使得系统设计...