QA公开课:QA就业趋势 知识班第1课:2010.06.12 QA介绍和基础知识 项目班第1课:2010.06.12 Web B/S架构
2010年6月-8月软件测试课程安排 知识班第2课:2010.06.19 SDLC/Testing Process 项目班第2课:2010.06.19 构建LAMP lab
恭喜一下L同学正式签约RIM(2010年4月) 知识班第3课:2010.07.10 Test plan & Test case 项目班第3课:2010.07.10 LAMP练习
性能测试和LoadRunner课程简介 知识班第4课:2010.07.17 bug流程和管理 项目班第4课:2010.07.17 SRS Review meeting
恭喜一下又一位M同学正式找到QTP自动测试的工作(2010年5月) 知识班第5课:2010.07.24 使用QC管理测试 项目班第5课:2010.07.24 Test Case Design练习
庆祝又一位新L同学(女)跳槽成功(10年6月) 知识班第6课:2010.08.07 QTP(1) 项目班第6课:2010.08.07 Test Case 课堂练习
第一位年薪十万的同学终于冒出来了(10年8月) 知识班第7课:2010.08.07 QTP(2) 项目班第7课:2010.08.14 Test plan和总结
2010.8月双喜临门,又一位同学找到测试新工作(10年8月) 知识班第8课:QA常用的windows命令和工具
返回列表 回复 发帖

[转帖] 20分钟,Ruby入门(5)

[size=+0]块(block),Ruby边缘的高亮点!
[size=+0]块(block)的真正优势在于:能够处理比列表更加复杂的对象。除了在方法中可以处理简单的内部管理细节外,你还能处理setup、teardown和所有错误,而不让用户有所察觉。
[size=+0]
[size=+0]say_bye方法没有使用each,而是检查@names是否具有join方法,如果具有join方法,则调用join方法。否则它将直接打印@names变量。
[size=+0]此方法并不关心变量的实际类型,这依赖于它所支持的那些被称为“[size=+0]Duck Typing”的方法:ducktyping是动态类型的一种形式:变量的值自身隐含地决定了了变量的行为。这暗示了某个对象与其它实现了相同接口的对象之间是可交换的,不管对象之间是否具有继承关系。鸭子测试(duck test)是对ducktyping的一种形象比喻——“如果它走路像鸭子,那么也一定像鸭子一样呷呷地叫,那么它必定是一只鸭子”。ducktyping是某些编程语言的特性:如Smalltalk, Python, Ruby, ColdFusion。
Duck Typing的益处是无需对变量的类型进行严格地限制,如果某人使用一种新类型的列表类,只要它实现了与其它列表相同语义的join方法,便可以拿来使用。
启动脚本
[size=+0]文件上半部分是MegaGreeter类的代码,而后面剩下的部分则是对这些类方法的调用。而这是我们最后值得注意的一点:
[size=+0]
[size=+0]__FILE__是一个“具有魔力”的变量,它代表了当前文件名。$0是用于启动程序的文件名。那么代码“if__FILE__ ==$0”便意味着检查此文件是否为将被使用的主程序文件。这样做可以使程序文件作为代码库使用,而不是可执行代码;但当此文件被用作执行文件时,也可被执行。
如何进一步学习Ruby
[size=+0]到此便是本入门的尾声了。当然还有许多值得浏览的:Ruby提供的各种不同的控制结构;块和yield的使用;模块作为[size=+0]mixins使用等。希望这次Ruby初体验能使你对Ruby更感兴趣。
注:mixin在面向对象编程语言中是一种提供某些功能给子类继承的类,但mixin并不能实例化。从某个mixin继承并不是什么特殊的形式,而它更适于收集功能。某个子类甚至可以通过继承一个或者多个mixin选择继承它的全部或者多数功能。一个mixin能延期定义和绑定方法直到运行时,而属性和实例参数也将在编译时才被定义。这不同于多数常见的方式:定义所有的属性、方法,并在编译时进行初始化。
我不为楼主这样的标题所吸引,也不是被帖子的内容所迷惑。我不是来抢沙发的,也不是来打酱油的。我不是为楼主呐喊加油的,也不是对楼主进行围堵攻击的。我只是为了每天回帖默默奋斗。htpc
你是个美女,我毫不关心,你是个怪兽,我决不在意;你是个帅哥,我不会妒忌,你是个畜男,我也不会PS。你的情操再怎么高尚,我也不会赞美,你的道德如何沦丧,我也不为所动。ktv
在这个处处都要元宝的时代,不得不弄个牛B的数字来显眼,于是我抄下了这段话,专门用来回
返回列表