𝔖 Scriptorium
✦   LIBER   ✦

📁

Kotlin编程权威指南

✍ Scribed by 乔希•斯基恩; 戴维•格林哈尔希


Publisher
人民邮电出版社
Year
2019
Tongue
Chinese
Leaves
342
Series
The Big Nerd Ranch Guide 中译本
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


本书由知名技术培训机构Big Nerd Ranch打造,秉承其一贯的简洁、实用的写作风格。Kotlin已成为Android官方支持的开发语言,但它具有平台独立性,亦可用于开发各种类型的原生应用。本书将带领你通过搭建书中的示例项目来循序渐进地掌握Kotlin 的用法。首先使用IntelliJ IDEA搭建沙盒项目,帮助你熟悉开发环境。接下来介绍Kotlin编程知识,从较为基础的变量、常量、类型等讲起,逐渐深入到继承、对象和抽象类。最后是函数式编程、Kotlin与Java互操作、构建Android应用等较复杂的内容。每一章都配有习题,帮你温故知新,巩固所学知识。

● 源自大名鼎鼎的Big Nerd Ranch训练营培训讲义,该训练营已经为Google、Facebook、微软等行业巨头培养了众多专业人才。

● 以循序渐进的方式精心编排章节,从基础的变量与集...

本书由知名技术培训机构Big Nerd Ranch打造,秉承其一贯的简洁、实用的写作风格。Kotlin已成为Android官方支持的开发语言,但它具有平台独立性,亦可用于开发各种类型的原生应用。本书将带领你通过搭建书中的示例项目来循序渐进地掌握Kotlin 的用法。首先使用IntelliJ IDEA搭建沙盒项目,帮助你熟悉开发环境。接下来介绍Kotlin编程知识,从较为基础的变量、常量、类型等讲起,逐渐深入到继承、对象和抽象类。最后是函数式编程、Kotlin与Java互操作、构建Android应用等较复杂的内容。每一章都配有习题,帮你温故知新,巩固所学知识。

● 源自大名鼎鼎的Big Nerd Ranch训练营培训讲义,该训练营已经为Google、Facebook、微软等行业巨头培养了众多专业人才。

● 以循序渐进的方式精心编排章节,从基础的变量与集合开始,逐渐深入到面向对象编程和函数式编程技术。

● 通过搭建各种示例项目,在实践中掌握Kotlin编程语言。

● 每章均有“深入学习”和“挑战练习”环节,帮你巩固所学知识。

【英文版读者评论】

“我有Java编程背景,但我认为本书同样适合零基础的初学者使用。跟随本书学习Kotlin编程非常轻松。”

“本书不仅告诉你怎样做,而且还告诉你为何这样做。每一章的练习题和示例代码都配合得天衣无缝。”

“这不是一本对Kotlin泛泛而谈的书,而是一本出色的指导手册:条理清晰,可读性强,范围明确,有参考价值。阅读之后的收获非常大。”

“示例项目易于上手,讲解也非常清晰,是Android开发者不容错过的一本书。”

✦ Table of Contents


封面
作译者简介
数字版权声明
扉页
版权页
版权声明
献词
致谢
前言
目录
3 版本声明
4 献词
5 致谢
6 前言
7 目录
第1章 Kotlin应用开发初体验
1.1 安装IntelliJ IDEA
1.2 第一个Kotlin项目
1.2.1 创建首个Kotlin文件
1.2.2 运行Kotlin文件
1.3 Kotlin REPL
1.4 深入学习:为什么要用IntelliJ
1.5 深入学习:面向JVM
1.6 挑战练习:使用REPL研究Kotlin中的算数运算符
第2章 变量、常量和类型
2.1 数据类型
2.2 声明变量
2.3 Kotlin的内置数据类型
2.4 只读变量
2.5 类型推断
2.6 编译时常量
2.7 查看Kotlin字节码
2.8 深入学习:Kotlin中的Java基本数据类型
2.9 挑战练习:定义hasSteed变量
2.10 挑战练习:独角兽之角
2.11 挑战练习:魔镜
第3章 条件语句
3.1 if/else语句
3.1.1 添加更多条件
3.1.2 if/else嵌套语句
3.1.3 更优雅的条件语句
3.2 range
3.3 when表达式
3.4 string模板
3.5 挑战练习:range研究
3.6 挑战练习:优化玩家光环展示
3.7 挑战练习:可配置的玩家状况报告格式
第4章 函数
4.1 使用函数重构代码
4.2 函数结构剖析
4.2.1 函数头
4.2.2 函数体
4.2.3 函数作用域
4.3 调用函数
4.4 以函数重构代码
4.5 自定义函数
4.6 默认值参
4.7 单表达式函数
4.8 Unit函数
4.9 具名函数参数
4.10 深入学习:Nothing类型
4.11 深入学习:Java中的文件级函数
4.12 深入学习:函数重载
4.13 深入学习:反引号中的函数名
4.14 挑战练习:单表达式函数
4.15 挑战练习:Fireball醉酒程度
4.16 挑战练习:醉酒状态报告
第5章 匿名函数与函数类型
5.1 匿名函数
5.1.1 函数类型
5.1.2 隐式返回
5.1.3 函数参数
5.1.4 it关键字
5.1.5 多个参数
5.2 类型推断
5.3 定义参数是函数的函数
简略语法
5.4 函数内联
5.5 函数引用
5.6 函数类型作为返回类型
5.7 深入学习:Kotlin中的lambda就是闭包
5.8 深入学习:lambda与匿名内部类
第6章 null安全与异常
6.1 可空性
6.2 Kotlin的null类型
6.3 编译时间与运行时间
6.4 null安全
6.4.1 选项一:安全调用操作符
6.4.2 选项二:使用!!.操作符
6.4.3 选项三:使用if判断null值情况
6.5 异常
6.5.1 抛出异常
6.5.2 自定义异常
6.5.3 处理异常
6.6 先决条件函数
6.7 null:真的一无是处吗
6.8 深入学习:已检查异常与未检查异常
6.9 深入学习:可空性该如何保证
第7章 字符串
7.1 字符串截取
7.1.1 substring
7.1.2 split
7.2 字符串操作
不可变字符串
7.3 字符串比较
7.4 深入学习:Unicode
7.5 深入学习:遍历字符
7.6 挑战练习:改进toDragonSpeak函数
第8章 数
8.1 数字类型
8.2 整数
8.3 小数数字
8.4 字符串转数值类型
8.5 Int类型转Double类型
8.6 Double类型格式化
8.7 Double类型转换为Int类型
8.8 深入学习:位运算
8.9 挑战练习:还剩多少酒
8.10 挑战练习:解决负数余额问题
8.11 挑战练习:龙币
第9章 标准库函数
9.1 apply
9.2 let
9.3 run
9.4 with
9.5 also
9.6 takeIf
9.7 使用标准库函数
第10章 List与Set
10.1 List
10.1.1 获取列表元素
10.1.2 更改列表内容
10.2 遍历
10.3 将文件数据读取到列表
10.4 解构
10.5 Set
10.5.1 创建一个Set集合
10.5.2 向Set集合中添加元素
10.6 while循环
10.7 break表达式
10.8 集合转换
10.9 深入学习:数组类型
10.10 深入学习:只读与不可变
10.11 挑战练习:美化酒水单
10.12 挑战练习:进一步美化酒水单
第11章 Map
11.1 创建一个Map
11.2 读取Map集合的值
11.3 向Map集合添加项
11.4 修改Map集合值
11.5 挑战练习:守卫小客栈
第12章 定义类
12.1 定义一个类
12.2 构造实例
12.3 类函数
12.4 可见性与封装
12.5 类属性
12.5.1 属性getter与setter
12.5.2 属性可见性
12.5.3 计算属性
12.6 重构NyetHack
12.7 使用包
12.8 深入学习:细看var与val属性
12.9 深入学习:防范竞态条件
12.10 深入学习:私有包
第13章 初始化
13.1 构造函数
13.1.1 主构造函数
13.1.2 在主构造函数里定义属性
13.1.3 次构造函数
13.1.4 默认参数
13.1.5 命名参数
13.2 初始化块
13.3 属性初始化
13.4 初始化顺序
13.5 延迟初始化
13.5.1 延迟初始化
13.5.2 惰性初始化
13.6 深入学习:初始化陷阱
13.7 挑战练习:圣剑之谜
第14 章 继承
14.1 定义Room类
14.2 创建子类
14.3 类型检测
14.4 Kotlin类层次
14.4.1 类型转换
14.4.2 智能类型转换
14.5 深入学习:Any
第15章 对象
15.1 object关键字
15.1.1 对象声明
15.1.2 对象表达式
15.1.3 伴生对象
15.2 嵌套类
15.3 数据类
15.3.1 toString
15.3.2 equals
15.3.3 copy
15.3.4 解构声明
15.4 枚举类
15.5 运算符重载
15.6 探索NyetHack游戏世界
15.7 深入学习:定义结构比较
15.8 深入学习:代数数据类型
15.9 挑战练习:“quit”命令
15.10 挑战练习:魔力地图
15.11 挑战练习:摇铃
第16章 接口与抽象类
16.1 定义接口
16.2 实现接口
16.3 默认实现
16.4 抽象类
16.5 在NyetHack游戏里打怪
第17章 泛型
17.1 定义泛型类
17.2 泛型函数
17.3 多泛型参数
17.4 泛型约束
17.5 vararg关键字与get函数
17.6 in与out
17.7 深入学习:reified关键字
第18章 扩展
18.1 定义扩展函数
在超类上定义扩展函数
18.2 泛型扩展函数
18.3 扩展属性
18.4 可空类扩展
18.5 扩展实现揭秘
18.6 用扩展封装代码
18.7 定义扩展文件
18.8 重命名扩展
18.9 Kotlin标准库中的扩展
18.10 深入学习:带接收者的函数字面量
18.11 挑战练习:toDragonSpeak扩展
18.12 挑战练习:frame扩展
第19章 函数式编程基础
19.1 函数类别
19.1.1 变换
19.1.2 过滤
19.1.3 合并
19.2 为什么要学习函数式编程
19.3 序列
19.4 深入学习:评估代码性能
19.5 深入学习:Arrow.kt
19.6 挑战练习:Map值反转
19.7 挑战练习:应用函数式编程
19.8 挑战练习:滑窗算法
第20章 Kotlin与Java互操作
20.1 与Java类互操作
20.2 互操作性与可空性
20.3 类型映射
20.4 getter和setter方法与互操作性
20.5 类之外
20.6 异常与互操作性
20.7 Java中的函数类型
第21章 用Kotlin开发首个Android应用
21.1 Android Studio
21.1.1 Gradle配置
21.1.2 项目组织
21.2 定义UI
21.3 用模拟器运行应用
21.4 生成角色
21.5 Activity类
21.6 实例化视图
21.7 Kotlin Android扩展
21.8 设置单击事件监听器
21.9 保存实例状态
读取保存的实例状态
21.10 使用扩展重构代码
21.11 深入学习:Android KTX与Anko库
第22章 Kotlin协程简介
22.1 解析角色数据
22.2 获取动态数据
22.3 Android主线程
22.4 启用协程
22.5 使用async指定协程
22.6 launch与async/await
22.7 挂起函数
22.8 挑战练习:动态数据
22.9 挑战练习:最小力量值
第23章 编后语
23.1 前方的路
23.2 插个广告
23.3 致谢
附录A 补充挑战练习
术语表
连接图灵
看完了


📜 SIMILAR VOLUMES


Android编程权威指南(第3版)
✍ 比尔·菲利普斯; 克里斯·斯图尔特; 克莉丝汀·马西卡诺 📂 Library 📅 2017 🏛 人民邮电出版社 🌐 Chinese

<p>Big Nerd Ranch 是美国一家专业的移动开发技术培训机构。本书主要以其Android 训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android 编程权威指南。全书共36 章,详细介绍了8 个Android 应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。</p> <p>第3 版较之前版本增加了对数据绑定等新工具的介绍,同时新增了针对单元测试、辅助功能和MVVM 架构等主题的章节。如果你熟悉Java 语言,或者了解面向对象编程,那就立刻开始Android 编程之旅吧!</p>

Android编程权威指南(第2版)
✍ Bill Phillips; Chris Stewart; Brian Hardy; Kristin Marsicano 📂 Library 📅 2016 🏛 人民邮电出版社 🌐 Chinese

<p>Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android编程权威指南。全书共34章,详细介绍了8个Android 应用。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得最前沿的开发经验。</p> <p>如果你熟悉Java语言,或者了解面向对象编程,那就立刻开始Android编程之旅吧!</p>

HTTP权威指南: 权威指南
✍ David Gourley; Brian Totty 📂 Library 📅 2012 🏛 人民邮电出版社 🌐 Chinese

<p>超文本传输协议(Hypertext Transfer Protocol,HTTP)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于web浏览器和web服务器之间的双工通信。</p> <p>HTTP起初是一个简单的协议,因此你可能会认为关于这个协议没有太多好说的。但现在,你手上拿着的是却一本两磅重 的书。如果你对我们怎么会写出一本650页 的关于HTTP的书感到奇怪的话,可以去看一下目录。本书不仅仅是一本HTTP首部的参考手册;它是一本名副其实的web结构圣经。</p> <p>本书中,我们尝试着将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列

HTTP权威指南
✍ David Gourley; Brian Totty 📂 Library 📅 2012 🏛 人民邮电出版社 🌐 Chinese

<p>超文本传输协议(Hypertext Transfer Protocol,HTTP)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于web浏览器和web服务器之间的双工通信。</p> <p>HTTP起初是一个简单的协议,因此你可能会认为关于这个协议没有太多好说的。但现在,你手上拿着的是却一本两磅重 的书。如果你对我们怎么会写出一本650页 的关于HTTP的书感到奇怪的话,可以去看一下目录。本书不仅仅是一本HTTP首部的参考手册;它是一本名副其实的web结构圣经。</p> <p>本书中,我们尝试着将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列

Ghidra权威指南
✍ Chris Eagle; Kara Nance; 杨超 📂 Library 📅 2023 🏛 电子工业出版社 🌐 Chinese

<p>Ghidra是美国国家安全局(NSA)开发的一套逆向工程工具套件。本书是目前市面上仅有的一本Ghidra使用指南,内容详尽、由浅入深。全书可分为五大部分,主要涵盖了以下内容:反汇编基础知识和Ghidra简介、Ghidra的基本用法、Ghidra的自定义和自动化、Ghidra模块的特定类型和支持概念、Ghidra应用于逆向工程时的一些实践问题,以及工程师如何从IDA Pro转移到Ghidra上。</p> <p>《Ghidra权威指南》主要作者Chris Eagle是信息安全领域著名的逆向工程专家,所撰写逆向工程相关书籍均已成为经典。</p> <p>《Ghidra权威指南》适合信息安全领

Blender权威指南
✍ 罗聪翼 📂 Library 📅 2011 🏛 机械工业出版社华章公司 🌐 Chinese

<p>Blender是全球首款开源3D制作软件,也是最成功和最受欢迎的3D动画制作软件之一。本书是全球首本中文Blender著作,由国内资深Blender专家、Blender世界杯艺术挑战赛冠军亲自执笔,Blender之父亲自作序推荐,国内权威的Blender中文社区BlenderCN官方推荐教程。</p> <p>《Blender权威指南》内容系统而全面,详尽地讲述了Blender的各种功能和特性,并一步一步地讲解了它们的使用方法,可操作性极强;技术新颖,基于最新版的Blender撰写;实战性强,书中不仅设计了大量精巧的小案例,以及详细介绍了这些案例的实现过程,而且还包含4个工程性的大案例。