ruby语法基础教程_第1页
ruby语法基础教程_第2页
ruby语法基础教程_第3页
ruby语法基础教程_第4页
ruby语法基础教程_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ruby语言

GrantRen

hyqryq@gmail.com

2006年11月24日

1/.__1—

刖B

目录

Ruby语言.........................................................................1

GrantRen..................................................................................................................................................1

第一部分Ruby语言基础..........................................................8

第一章Ruby语言概述.............................................................8

§1.1Ruby的历史...........................................................................8

§1.2Ruby名字的由来.......................................................................8

§1.3Ruby的特点...........................................................................8

§1.4Ruby和Python的比较...................................................................9

第二章Ruby编程环境.............................................................9

§2.1Ruby的安装...........................................................................9

§2.1.1在Windows95/98/Me/XP上安装Ruby.............................................................................................9

§2.1.2在Linux上安装Ruby.......................................................................................................................10

§2.2运行Ruby.........................................................................................................................................................10

§2.2.1使用Ruby..............................................................................................................................................10

§2.2.2使用FreeRIDE和SciTE.....................................................................................................................12

§2.2.3使用fxri.................................................................................................................................................13

§2.3Ruby-irb.............................................................................................................................................................14

§2.4Ruby-ri...............................................................................................................................................................15

§2.5RubyGems........................................................................................................................................................16

第三章类与对象................................................................17

§3.1类的定义.............................................................................17

§3.2对象,属性和方法.....................................................................18

§3.3继承.................................................................................20

§3.4特殊方法与特殊类....................................................................21

§3.5类变量与类方法......................................................................23

§3.4存取控制.............................................................................23

§3.6元类.................................................................................25

§3.7Ruby的动态性........................................................................26

§3.8变量.................................................................................27

§3.8.1局部变量.......................................................................27

§3.8.2实例变量.......................................................................27

§3.8.3类变量.........................................................................28

§3.8.4全局变量.......................................................................28

§3.8.5常量...........................................................................28

§3.8与定义有关的操作....................................................................29

§3.8.1alias........................................................................................................................................................29

§3.8.2undef.......................................................................................................................................................30

§3.8.3defined?..................................................................................................................................................31

第四章基本类型.................................................................34

§4.1Array.................................................................................................................................................................34

§4.2Hash..................................................................................................................................................................35

§4.3Number.............................................................................................................................................................35

§4.4String.................................................................................................................................................................36

§4.5Range.................................................................................................................................................................37

§4.6Symbol...............................................................................................................................................................38

§4.7正则表达式...........................................................................39

第五章代码块和迭代器..........................................................40

§5.1代码块(Block)..................................................................................................................................................40

§5.1.1什么是代码块...................................................................40

§5.1.2代码块与对象...................................................................40

§5.2迭代器(Iterator)................................................................................................................................................41

§5.2.1什么是迭代器...................................................................41

§5.2.2使用迭代器.....................................................................42

§5.2.3yield........................................................................................................................................................42

§5.2.4编写自己的迭代器................................................................43

第六章表达式...................................................................44

§6.1运算符...............................................................................44

§6.2命令替换.............................................................................45

§6.3赋值运算符...........................................................................46

§6.4并行赋值.............................................................................47

§6.5嵌套赋值.............................................................................48

§6.6其他赋值.............................................................................48

§6.7条件运算.............................................................................48

§6.8case表达式...........................................................................50

§6.9循环.................................................................................51

§6.9.1Loop.........................................................................................................................................................51

§6.9.2While......................................................................................................................................................51

§6.9.3Until........................................................................................................................................................51

§6.9.4Iterator.....................................................................................................................................................51

§6.9.5For..In......................................................................................................................................................52

§6.9.6Break,Redo,Next.............................................................................................................................52

§6.9.7Retry........................................................................................................................................................54

第七章方法.....................................................................55

§7.1运算符重定义....................................................................57

§7.2变长参数........................................................................57

§7.3块调用...........................................................................58

§7.4方法返回值......................................................................59

第八章模块.....................................................................60

§8.1名字空间.............................................................................60

§8.2mixin..................................................................................................................................................................60

§8.3使用mixin.........................................................................................................................................................61

§8.3.1Comparable.............................................................................................................................................61

§8.3.2Enumerable............................................................................................................................................62

§8.3.3Singleton.................................................................................................................................................63

§8.4Require,load和include...................................................................................................................................64

第九章异常....................................................................65

§9.1异常处理.............................................................................65

§9.2定义异常类...........................................................................69

§9.3catch和throw...................................................................................................................................................69

第十章多任务处理.............................................................70

§10.1多线程处理.........................................................................70

§10.1.1线程创建......................................................................70

§10.1.2线程操作......................................................................71

§10.1.3线程和异常....................................................................72

§10.1.4线程调度......................................................................75

§10.1.5线程同步......................................................................75

§10.2多进程处理..........................................................................81

§10.2.1进程创建......................................................................81

第H-一章基本I/O操作.........................................................82

§11.1使用Kernel模块处理I/O操作..........................................................82

§11.2文件处理.............................................................................82

§11.3StringlO............................................................................................83

§11.4Socket.............................................................................................84

第十二章反射和对象空间........................................................84

§12.1ObjectSpace模块.....................................................................84

§12.2察看类和对象的状态..................................................................86

§12.3动态方法调用........................................................................88

§12.3.1使用send方法.................................................................88

§12.3.2使用Method类和UnboundMethod类..............................................88

§12.3.3使用eval方法..................................................................90

§12.3.4性能..........................................................................90

§12.4Hook和回调方法.....................................................................91

§12.4.1什么是Hook...............................................................................91

§12.4.2Ruby中的Hook............................................................................91

§11.4.2回调方法.......................................................................92

§12.5跟踪程序的运行......................................................................92

§12.5.1set_trace_func........................................................................92

§12.5.2trace_var...........................................................................93

§12.5.3caller.......................................................................................93

§12.5.3_FILE_,_LINE_和SCRIPT_LINES_.................................................94

第十三章序列化和YAML...................................................................94

§13.1序列化的概念........................................................................94

§13.2使用序列化..........................................................................95

§13.2.1二进制数据保存................................................................95

§13.2.2YAML数据保存................................................................95

§13.3定制序列化..........................................................................96

§13.3.1二进制数据保存................................................................96

§13.3.2YAML数据保存................................................................97

§13.3YAML.............................................................................................98

§13.3.1集合类型......................................................................98

§13.3.2单行集合类型.................................................................101

§13.3.3基本类型.....................................................................101

§13.3.4块............................................................................101

§13.3.5别名和锚(AliasesandAnchors).........................................................101

§13.3.6文档.........................................................................101

§13.3.7Ruby中YAML的使用..........................................................101

第十四章安全控制..............................................................102

§14.10级................................................................................103

§14.11级.................................................................................103

§14.22级................................................................................103

§14.33级................................................................................103

§14.44级................................................................................103

第十五章单元测试..............................................................104

§15.1什么是单元测试.....................................................................104

§15.2Ruby单元测试框架..................................................................104

第二部分内置类与模块.........................................................104

第一章内置类..................................................................104

§1.1Array.................................................................................................................................................................104

§1.2Bignum.............................................................................................................................................................104

§1.3Binding.............................................................................................................................................................104

§1.4Class..................................................................................................................................................................104

§1.5Continuation..................................................................................................................................................104

§1.6Dir.....................................................................................................................................................................106

§1.7Exception.........................................................................................................................................................106

§1.8FalseClass........................................................................................................................................................106

§1.9File....................................................................................................................................................................106

§1.10File::Stat.........................................................................................................................................................106

§1.11Fixnum............................................................................................................................................................106

§1.12Hoat................................................................................................................................................................106

§1.13Hash................................................................................................................................................................106

§1.14Integer.............................................................................................................................................................106

§1.1510....................................................................................................................................................................106

§1.16MatchData......................................................................................................................................................106

§1.17Method............................................................................................................................................................106

§1.18Module............................................................................................................................................................106

§1.19NilClass...........................................................................................................................................................106

§1.20Numeric.........................................................................................................................................................106

§1.21Object..............................................................................................................................................................107

§1.22Proc.................................................................................................................................................................107

§1.23Process::Status............................................................................................................................................107

§1.24Range..............................................................................................................................................................107

§1.25Regexp............................................................................................................................................................107

§1.26String...............................................................................................................................................................107

§1.27Struct...............................................................................................................................................................107

§1.28Struct::Tms.....................................................................................................................................................107

§1.29Symbol...........................................................................................................................................................107

§1.30Thread............................................................................................................................................................107

§1.31ThreadGroup..................................................................................................................................................107

§1.32Time................................................................................................................................................................107

§1.33TrueClass.......................................................................................................................................................107

§1.34UnboundMethod............................................................................................................................................107

第二章内置模块108

§2.1Comparable......................................................................................................................................................108

§2.2Enumerable......................................................................................................................................................108

§2.3Error..................................................................................................................................................................108

§2.4FileTest..............................................................................................................................................................108

§2.5GC.....................................................................................................................................................................108

§2.6Kernel...............................................................................................................................................................108

§2.7Marshal.............................................................................................................................................................108

§2.8Math..................................................................................................................................................................108

§2.9ObjectSpace.....................................................................................................................................................108

§2.10Process...........................................................................................................................................................108

§2.11Process::GID...............................................................................................................................................108

§2.12Process::Sys.................................................................................................................................................108

§2.13Process::UID................................................................................................................................................108

§2.14Signal..............................................................................................................................................................108

第三部分Ruby语言总结........................................................109

附录112

§1术语对照..............................................................................112

第一部分Ruby语言基础

第一章Ruby语言概述

§1.1Ruby的历史

Ruby语言的发明人是日本人松本行弘(MatsumotoYukihiro),大家亲切的称呼他"Matz"。

可能会出乎大家的意料,Ruby并不是一种近年来才诞生的语言,它的历史可以追溯到1993年,Ruby之父

Matz开始对脚本语言感兴趣。在通过一些分析和思考之后,Matz认为脚本语言是可以变得很强大和灵活的,

于是他准备把脚本语言作为他的发展方向。和很多人一样,Matz是一个面向对象程序设计的fans,自然而

然他想研究一种支持面向对象程序设计的脚本语言。随后的一段时间,他到网络上搜集了一些相关的资料,

并且发现了Perl5,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论