图书介绍
HEAD FIRST RUBY 中文版PDF|Epub|txt|kindle电子书版本网盘下载
- 杰伊·格瑞恩(McGavren Jay)著 著
- 出版社: 北京:中国电力出版社
- ISBN:9787519800574
- 出版时间:2017
- 标注页数:537页
- 文件大小:66MB
- 文件页数:570页
- 主题词:计算机网络-程序设计
PDF下载
下载说明
HEAD FIRST RUBY 中文版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1 少说多做2
Ruby哲学2
交互式使用Ruby5
你的第一个Ruby表达式6
数学运算和比较6
字符串6
变量7
在对象上调用方法8
输入、存储和输出12
运行脚本13
注释14
“puts”和“print”14
方法参数15
“gets”15
字符串内插16
用“inspect”和“p”方法检查对象18
字符串中的转义序列19
在字符串对象上调用“chomp20
生成一个随机数22
转换为字符串23
将字符串转换为数字25
条件语句26
与“if”对应的是“unless”29
循环30
你的Ruby工具箱34
2 方法与类36
定义方法36
调用前面定义的方法37
方法名38
参数38
返回值42
提前从方法返回43
一些乱七八糟的方法44
太多的实参45
太多的“if”语句45
设计一个类46
类和对象有什么区别?47
你的第一个类48
创建新实例(对象)48
把庞大的方法分解到类49
创建新动物类的实例50
更新类图增加实例方法51
局部变量只能生存到方法结束55
实例变量与实例同生死56
封装58
属性存取方法59
使用存取方法61
属性书写器和阅读器62
用存取方法确保数据合法69
错误——“紧急停止”按钮70
在属性书写器方法中使用“raise”71
你的Ruby工具箱73
3 继承76
复制,粘贴……真浪费76
继承来救场!78
定义超类(毫无特殊之处)80
定义子类(相当容易)81
为子类增加方法82
除了新方法,子类仍保留继承的方法83
实例变量属于对象,而不是类!84
让我们的动物类一同使用继承91
设计动物类层次结构92
Animal类与子类的代码93
在Animal子类中覆盖一个方法94
要得到覆盖的方法!95
“super”关键字96
super助力的子类98
显示Dog的难题101
Object类102
为什么一切都从Object类继承103
覆盖继承的方法104
你的Ruby工具箱105
4 初始化实例108
Chargemore的工资系统108
Employee类109
创建新Employee实例110
Ruby Fixnum类的除法112
Ruby Float类的除法113
修正Employee中工资取整错误114
格式化数字以便打印115
格式序列116
使用“format”修正我们的工资单119
如果忘记设置对象的属性120
“nil”代表什么都没有121
“/”是一个方法122
“initialize”方法123
“initialize”的参数125
“initialize”与验证130
用“self”调用同一实例上的其他方法131
通过继承实现按小时计薪的员工137
恢复“initialize”方法140
继承和“initialize”141
“super”和“initialize”142
低效的工厂方法148
类方法149
完整的源代码152
你的Ruby工具箱154
5 数组与块156
数组156
访问数组157
数组也是对象!158
循环处理数组中的元素161
重复的循环162
消除重复……错误的方式165
块167
定义一个接收块的方法168
你的第一个块169
方法与块之间的控制流170
调用相同的方法,使用不同的块171
多次调用一个块172
块参数173
使用“yield”关键字174
块格式175
“each”方法179
用“each”和块消除代码重复181
块和变量作用域184
完整的计价方法188
我们已经消除了重复的循环代码!188
能源和设备,块和方法191
你的Ruby工具箱192
6 块返回值194
搜索一个庞大的单词集合194
打开文件196
安全地关闭文件196
用块安全地关闭文件197
不要忘记变量作用域!198
使用块查找我们想要的数组元素201
查找数组元素的麻烦方法:使用“each”202
介绍一个更快捷的方法203
块有一个返回值204
方法如何使用块返回值209
综合210
深入分析块返回值211
用块清除我们不想要的元素212
“reject”的返回值213
将字符串分解为单词数组214
查找数组元素的索引215
基于一个数组创建另一个数组(麻烦方法)216
使用“map”基于一个数组创建另一个数组217
“map”块体中另外的一些逻辑219
最后的成果220
你的Ruby工具箱223
7 散列226
统计选票226
数组的数组……不太理想227
散列228
散列是对象230
散列默认返回“nil”233
nil(而且仅nil)是“假值”234
默认返回非“nil”的其他对象236
规范化散列键238
散列和“each”240
关于方法参数242
使用散列作为方法参数243
Candidate类中的散列参数244
省略大括号!245
省略箭头!245
让整个散列是可选的246
散列参数中的录入错误很危险248
关键字参数249
Candidate类使用关键字参数250
必要的关键字参数251
你的Ruby工具箱255
8 引用258
让人困惑的bug258
堆259
引用260
引用出错时261
别名262
修正天文爱好者的程序264
用“inspect”快速识别对象266
散列默认对象的问题267
我们实际上在修改散列默认对象!269
散列默认对象详解270
再来看行星和卫星的散列271
关于散列默认值的愿望清单272
散列默认块273
天文爱好者的散列:最终代码279
安全地使用散列默认对象280
散列默认对象规则#1:不要修改默认对象281
散列默认对象规则#2:为散列赋值282
使用散列默认对象的经验283
你的Ruby工具箱284
9 mixin286
媒体共享应用286
媒体共享应用……使用继承287
其中一个类与其他类不(太)像288
方案一:让Photo作为Clip的一个子类288
方案二:将想要的方法复制到Photo类中289
不可用的方案:多重继承290
使用模块作为mixin291
mixin在后台的工作293
为评论创建一个mixin297
使用comments mixin298
详细分析修改后的“comments”方法299
为什么mixin中不能增加“initialize”300
mixin和方法覆盖302
避免模块中使用“initialize”方法303
使用布尔“或”操作符完成赋值305
条件赋值操作符306
完整代码309
你的Ruby工具箱310
10 comparable与enumerable312
Ruby内置的mixin312
comparable mixin概览313
牛肉的不同选择314
在Steak类上实现一个“大于”方法315
常量316
还要定义很多方法317
comparable mixin318
飞船操作符319
在Steak中实现飞船操作符320
comparable混入Steak321
comparable方法如何工作322
下一个mixin325
enumerable模块326
混入enumerable的类327
在我们的类中混入enumerable328
enumerable模块内部329
你的Ruby工具箱332
11 文档335
Ruby的核心类和模块335
文档335
HTML文档336
列出可用的类和模块337
查看实例方法338
实例方法文档340
调用签名中的参数341
调用签名中的块342
还要阅读超类和mixin的文档!343
查看类方法346
类方法文档348
不存在的类的文档?349
Ruby标准库350
查看标准库中类和模块的文档352
从哪里得到Ruby文档:rdoc353
关于你的类,rdoc能推断出什么信息355
利用注释增加你自己的文档356
“initialize”实例方法会作为“new”类方法出现357
你的Ruby工具箱358
12 异常360
不要使用方法返回值提供错误消息360
使用“raise”报告错误362
单独使用“raise”创建新问题363
异常:如果出了问题364
Rescue子句:修正问题的一个机会365
Ruby搜索rescue子句366
在我们的SmallOven类中使用rescue子句368
需要从问题来源得到问题的描述369
异常消息370
目前的代码373
不同异常有不同的处理逻辑375
异常类377
为rescue子句指定异常类379
一个begin/end块中多个rescue子句380
利用定制异常类更新我们烤箱代码381
用“retry”在出现错误之后再次尝试382
用“retry”更新我们的烤箱代码383
无论如何都要做的事情385
ensure子句386
确保关烤箱387
你的Ruby工具箱388
13 单元测试390
自动测试会在其他人之前先发现你的bug390
必须提供自动测试的程序391
自动测试类型393
MiniTest:Ruby的标准单元测试库394
运行测试395
测试一个类396
详细分析测试代码398
红-绿-重构400
ListWithCommas的测试401
让测试通过404
另一个要修正的bug406
测试失败消息407
验证两个值相等的更好的办法408
其他断言方法410
删除测试中的重复代码413
“setup”方法414
“teardown”方法415
更新代码来使用“setup”方法416
你的Ruby工具箱419
14 Web应用422
用Ruby编写Web应用422
我们的任务清单423
工程目录结构424
浏览器、请求、服务器和响应425
用RubyGems下载和安装库426
安装Sinatra gem427
一个简单的Sinatra应用428
请求类型430
资源路径431
Sinatra路由432
HTML中建立一个电影列表435
从Sinatra访问HTML436
存放电影数据的类438
Sinatra应用中建立一个Movie对象439
ERB嵌入标记440
HTML中循环处理多个电影名446
用HTML表单允许用户增加数据449
建立一个HTML表单增加电影450
HTML表451
用HTML整理表单452
你的Ruby工具箱454
15 保存与加载数据456
保存和获取表单数据456
设置HTML表单发送一个POST请求460
为POST请求建立一个Sinatra路由461
用YAML实现对象和字符串的相互转换465
用YAML::Store将对象保存到文件466
用YAML::Store将电影保存到文件467
查找下一个可用的电影ID473
Sinatra应用中使用MovieStore类476
测试MovieStore477
从MovieStore加载所有电影478
Sinatra应用中加载所有电影480
建立各个电影的HTML链接481
Sinatra路由中的命名参数484
使用命名参数得到一个电影的ID485
按优先级顺序定义路由486
YAML::Store中查找Movie489
单个电影的ERB模板490
完成处理单个电影的Sinatra路由491
你的Ruby工具箱497
附录i 其他500
#1其他酷库500
#2内联if和unless502
#3私有方法503
#4命令行参数505
#5正则表达式506
#6单例方法508
#7调用任何方法,甚至未定义的方法509
#8用Rake自动完成任务511
#9Bundler512
#10其他图书513