HEAD FIRST RUBY 中文版PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:杰伊·格瑞恩(McGavren Jay)著
- 出 版 社:北京:中国电力出版社
- 出版年份:2017
- ISBN:9787519800574
- 页数:537 页
1 少说多做 2
Ruby哲学 2
交互式使用Ruby 5
你的第一个Ruby表达式 6
数学运算和比较 6
字符串 6
变量 7
在对象上调用方法 8
输入、存储和输出 12
运行脚本 13
注释 14
“puts”和“print” 14
方法参数 15
“gets” 15
字符串内插 16
用“inspect”和“p”方法检查对象 18
字符串中的转义序列 19
在字符串对象上调用“chomp 20
生成一个随机数 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
让人困惑的bug 258
堆 259
引用 260
引用出错时 261
别名 262
修正天文爱好者的程序 264
用“inspect”快速识别对象 266
散列默认对象的问题 267
我们实际上在修改散列默认对象! 269
散列默认对象详解 270
再来看行星和卫星的散列 271
关于散列默认值的愿望清单 272
散列默认块 273
天文爱好者的散列:最终代码 279
安全地使用散列默认对象 280
散列默认对象规则#1:不要修改默认对象 281
散列默认对象规则#2:为散列赋值 282
使用散列默认对象的经验 283
你的Ruby工具箱 284
9 mixin 286
媒体共享应用 286
媒体共享应用……使用继承 287
其中一个类与其他类不(太)像 288
方案一:让Photo作为Clip的一个子类 288
方案二:将想要的方法复制到Photo类中 289
不可用的方案:多重继承 290
使用模块作为mixin 291
mixin在后台的工作 293
为评论创建一个mixin 297
使用comments mixin 298
详细分析修改后的“comments”方法 299
为什么mixin中不能增加“initialize” 300
mixin和方法覆盖 302
避免模块中使用“initialize”方法 303
使用布尔“或”操作符完成赋值 305
条件赋值操作符 306
完整代码 309
你的Ruby工具箱 310
10 comparable与enumerable 312
Ruby内置的mixin 312
comparable mixin概览 313
牛肉的不同选择 314
在Steak类上实现一个“大于”方法 315
常量 316
还要定义很多方法 317
comparable mixin 318
飞船操作符 319
在Steak中实现飞船操作符 320
comparable混入Steak 321
comparable方法如何工作 322
下一个mixin 325
enumerable模块 326
混入enumerable的类 327
在我们的类中混入enumerable 328
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文档:rdoc 353
关于你的类,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
自动测试会在其他人之前先发现你的bug 390
必须提供自动测试的程序 391
自动测试类型 393
MiniTest:Ruby的标准单元测试库 394
运行测试 395
测试一个类 396
详细分析测试代码 398
红-绿-重构 400
ListWithCommas的测试 401
让测试通过 404
另一个要修正的bug 406
测试失败消息 407
验证两个值相等的更好的办法 408
其他断言方法 410
删除测试中的重复代码 413
“setup”方法 414
“teardown”方法 415
更新代码来使用“setup”方法 416
你的Ruby工具箱 419
14 Web应用 422
用Ruby编写Web应用 422
我们的任务清单 423
工程目录结构 424
浏览器、请求、服务器和响应 425
用RubyGems下载和安装库 426
安装Sinatra gem 427
一个简单的Sinatra应用 428
请求类型 430
资源路径 431
Sinatra路由 432
HTML中建立一个电影列表 435
从Sinatra访问HTML 436
存放电影数据的类 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
查找下一个可用的电影ID 473
Sinatra应用中使用MovieStore类 476
测试MovieStore 477
从MovieStore加载所有电影 478
Sinatra应用中加载所有电影 480
建立各个电影的HTML链接 481
Sinatra路由中的命名参数 484
使用命名参数得到一个电影的ID 485
按优先级顺序定义路由 486
YAML::Store中查找Movie 489
单个电影的ERB模板 490
完成处理单个电影的Sinatra路由 491
你的Ruby工具箱 497
附录i 其他 500
#1其他酷库 500
#2内联if和unless 502
#3私有方法 503
#4命令行参数 505
#5正则表达式 506
#6单例方法 508
#7调用任何方法,甚至未定义的方法 509
#8用Rake自动完成任务 511
#9Bundler 512
#10其他图书 513
- 《AutoCAD 2018自学视频教程 标准版 中文版》CAD/CAM/CAE技术联盟 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019
- 《复分析 英文版》(中国)李娜,马立新 2019
- 《生物化学 本科临床 英文版》张晓伟 2018
- 《Dreamweaver CC 2018标准实例教程 中文版》杨雪静,胡仁喜编著 2019
- 《Flash CC动画制作实用教程 中文版》麓山文化 2019
- 《代数簇 英文版》(荷)Eduard Lo 2019
- 《全国高等教育艺术设计专业规划教材 AutoCAD2020中文版标准教程》(中国)张莉,周子良,何婧 2019
- 《高等学校中外合作办学适用教材 高等数学 上 英文版》(中国)潘斌,牛宏,陈丽 2019
- 《全国高等学校药学类专业教材 药理学 英文版》殷明,朱依谆主编 2017
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《中国当代乡土小说文库 本乡本土》(中国)刘玉堂 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《中国铁路人 第三届现实主义网络文学征文大赛一等奖》恒传录著 2019
- 《莼江曲谱 2 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《中国制造业绿色供应链发展研究报告》中国电子信息产业发展研究院 2019
- 《中国陈设艺术史》赵囡囡著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《《走近科学》精选丛书 中国UFO悬案调查》郭之文 2019
- 《清至民国中国西北戏剧经典唱段汇辑 第8卷》孔令纪 2018
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018