二十分钟 教你Ruby快速入门 图文教程第4/4页

 更新时间:2007年10月20日 18:58:18   作者:  

!"将使用这个参数进行输出。

大多数其它的编程语言使用循环遍历列表,下面是C语言的循环示例:



上面的代码显然可以工作,但它不够“优雅”!你不得不用i这个多余的循环变量,还需要指出列表的长度,然后再解释如何遍历列表。

Ruby的迭代方式则更加优雅,所有的内部管理细节都隐藏在each方法中,你所需做的就是告诉它如何处理其中的每个成员。
块(block),Ruby边缘的高亮点!

块(block)的真正优势在于:能够处理比列表更加复杂的对象。除了在方法中可以处理简单的内部管理细节外,你还能处理setup、teardown和所有错误,而不让用户有所察觉。



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类的代码,而后面剩下的部分则是对这些类方法的调用。而这是我们最后值得注意的一点:



__FILE__是一个“具有魔力”的变量,它代表了当前文件名。$0是用于启动程序的文件名。那么代码“if __FILE__ == $0”便意味着检查此文件是否为将被使用的主程序文件。这样做可以使程序文件作为代码库使用,而不是可执行代码;但当此文件被用作执行文件时,也可被执行。

如何进一步学习Ruby

到此便是本入门的尾声了。当然还有许多值得浏览的:Ruby提供的各种不同的控制结构;块和yield的使用;模块作为mixins使用等。希望这次Ruby初体验能使你对Ruby更感兴趣。

注:mixin在面向对象编程语言中是一种提供某些功能给子类继承的类,但mixin并不能实例化。从某个mixin继承并不是什么特殊的形式,而它更适于收集功能。某个子类甚至可以通过继承一个或者多个mixin选择继承它的全部或者多数功能。一个mixin能延期定义和绑定方法直到运行时,而属性和实例参数也将在编译时才被定义。这不同于多数常见的方式:定义所有的属性、方法,并在编译时进行初始化。

相关文章

  • Ruby实现的各种排序算法

    Ruby实现的各种排序算法

    这篇文章主要介绍了Ruby实现的各种排序算法,本文给出了Bubble sort、Insertion sort、Selection sort、Shell sort等排序的实现方法,需要的朋友可以参考下
    2015-05-05
  • Redis集群搭建全记录

    Redis集群搭建全记录

    本文给大家总结了redis集群的概念等基础知识,以及个人在搭建redis集群是所遇到的问题及解决方法,非常的详细,有需要的小伙伴可以参考下
    2017-09-09
  • Windows下Ruby+Watir自动化测试的环境搭建及数据读取

    Windows下Ruby+Watir自动化测试的环境搭建及数据读取

    这篇文章主要介绍了Windows下Ruby+Watir自动化测试的环境搭建及数据读取,Watir是一个使用Ruby实现的开源Web自动化测试框架,需要的朋友可以参考下
    2016-03-03
  • Ruby与Ruby on Rails框架环境搭建的简明教程

    Ruby与Ruby on Rails框架环境搭建的简明教程

    这篇文章主要介绍了Ruby与Ruby on Rails框架环境搭建的简明教程,包括RubyGems的升级与OpenSSL的支持等配置,需要的朋友可以参考下
    2016-05-05
  • RUBY 新手教程 跟我一起学ruby

    RUBY 新手教程 跟我一起学ruby

    从今天起我就要开始学Ruby了。怎么样,没见吧?一个新人写教程。就凭我坚强的毅力,科学的自学方法,以及我的钻研精神,我有信心学通Ruby,而同样是新手的你也可以!
    2011-01-01
  • Ruby简明教程之方法(Method)介绍

    Ruby简明教程之方法(Method)介绍

    这篇文章主要介绍了Ruby简明教程之方法(Method)介绍,ruby的方法分为实例方法、类方法、函数方法等,本文分别做了讲解,需要的朋友可以参考下
    2014-06-06
  • 你应该知道的Ruby代码风格

    你应该知道的Ruby代码风格

    Ruby是非常自由灵活的语言,所以不同的Rubist风格差异可能很大。那么在代码规范方面他们的差异大不大呢? 通过分析GitHub上托管的开源代码,得出了 一些有趣的结果 ,让我们一起来看看Rubist的喜好吧
    2014-03-03
  • Ruby操作CSV格式数据方法详解

    Ruby操作CSV格式数据方法详解

    这篇文章主要介绍了Ruby操作CSV格式数据方法,包括CSV格式文件读写,类型转换等操作,需要的朋友可以参考下
    2022-04-04
  • Ruby 中关于日文转UTF-8及半角全角转换的技巧

    Ruby 中关于日文转UTF-8及半角全角转换的技巧

    Ruby 中关于日文转UTF-8及半角全角转换的技巧,实现代码。
    2009-05-05
  • Ruby实现网页图片抓取

    Ruby实现网页图片抓取

    本文给大家分享的是个人使用ruby编写的抓取网页图片的代码,十分的简单实用,有需要的小伙伴可以参考下。
    2016-04-04

最新评论