二十分钟 教你Ruby快速入门 图文教程
更新时间:2007年10月20日 18:58:18 作者:
!"将使用这个参数进行输出。
大多数其它的编程语言使用循环遍历列表,下面是C语言的循环示例:
![](/upload/20071020185815603.jpg)
上面的代码显然可以工作,但它不够“优雅”!你不得不用i这个多余的循环变量,还需要指出列表的长度,然后再解释如何遍历列表。
Ruby的迭代方式则更加优雅,所有的内部管理细节都隐藏在each方法中,你所需做的就是告诉它如何处理其中的每个成员。
块(block),Ruby边缘的高亮点!
块(block)的真正优势在于:能够处理比列表更加复杂的对象。除了在方法中可以处理简单的内部管理细节外,你还能处理setup、teardown和所有错误,而不让用户有所察觉。
![](/upload/20071020185815273.jpg)
say_bye方法没有使用each,而是检查@names是否具有join方法,如果具有join方法,则调用join方法。否则它将直接打印@names变量。
此方法并不关心变量的实际类型,这依赖于它所支持的那些被称为“Duck Typing”的方法:duck typing是动态类型的一种形式:变量的值自身隐含地决定了了变量的行为。这暗示了某个对象与其它实现了相同接口的对象之间是可交换的,不管对象之间是否具有继承关系。鸭子测试(duck test)是对duck typing的一种形象比喻——“如果它走路像鸭子,那么也一定像鸭子一样呷呷地叫,那么它必定是一只鸭子”。duck typing是某些编程语言的特性:如Smalltalk, Python, Ruby, ColdFusion。
Duck Typing的益处是无需对变量的类型进行严格地限制,如果某人使用一种新类型的列表类,只要它实现了与其它列表相同语义的join方法,便可以拿来使用。
启动脚本
文件上半部分是MegaGreeter类的代码,而后面剩下的部分则是对这些类方法的调用。而这是我们最后值得注意的一点:
![](/upload/20071020185815371.jpg)
__FILE__是一个“具有魔力”的变量,它代表了当前文件名。$0是用于启动程序的文件名。那么代码“if __FILE__ == $0”便意味着检查此文件是否为将被使用的主程序文件。这样做可以使程序文件作为代码库使用,而不是可执行代码;但当此文件被用作执行文件时,也可被执行。
如何进一步学习Ruby
到此便是本入门的尾声了。当然还有许多值得浏览的:Ruby提供的各种不同的控制结构;块和yield的使用;模块作为mixins使用等。希望这次Ruby初体验能使你对Ruby更感兴趣。
注:mixin在面向对象编程语言中是一种提供某些功能给子类继承的类,但mixin并不能实例化。从某个mixin继承并不是什么特殊的形式,而它更适于收集功能。某个子类甚至可以通过继承一个或者多个mixin选择继承它的全部或者多数功能。一个mixin能延期定义和绑定方法直到运行时,而属性和实例参数也将在编译时才被定义。这不同于多数常见的方式:定义所有的属性、方法,并在编译时进行初始化。
您可能感兴趣的文章:
- Ruby学习笔记之gem 命令详解
- Ruby rails 页面跳转(render和redirect_to)
- Ruby 字符串处理
- RUBY 新手教程 跟我一起学ruby
- 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)
- Ruby中执行Linux shell命令的六种方法详解
- 淘宝网提供的国内RubyGems镜像简介和使用方法
- 详解Ruby中正则表达式对字符串的匹配和替换操作
- Ruby Gems更换淘宝源方法
- Windows下Ruby on Rails开发环境安装配置图文教程
- ruby 学习笔记(2) 类的基本使用
- ruby 异常处理:rescue
- CentOS 6.3下编译安装Ruby 2.0笔记
- Ruby中的return、break、next详解
- 举例讲解Ruby中require的使用方法
- 更改RubyGem安装源
- 使用Ruby来处理JSON的简单教程
- Ruby信号处理详解
相关文章
Windows下Ruby+Watir自动化测试的环境搭建及数据读取
这篇文章主要介绍了Windows下Ruby+Watir自动化测试的环境搭建及数据读取,Watir是一个使用Ruby实现的开源Web自动化测试框架,需要的朋友可以参考下2016-03-03
最新评论