upload/duxiu_main2/【星空藏书馆】/【星空藏书馆】等多个文件/图书馆8号/综合书库②/书籍漫画/精品 2018 2019最新IT编程电子书/第E1期(2018-10-16)/《零基础学Kotlin编程》_张博译【瑞客论坛 www.ruike1.com】.pdf
零基础学Kotlin编程 🔍
(美)马尔钦·莫斯卡拉,(美)伊戈尔·沃吉达著;张博译
北京:清华大学出版社, 2021
中文 [zh] · PDF · 220.3MB · 2021 · 📘 非小说类图书 · 🚀/duxiu/lgli/upload/zlib · Save
描述
Ben shu chan shu le yu Kotlin cheng xu she ji xiang guan de ji ben jie jue fang an,Zhu yao bao kuo Kotlin yu yan ji chu zhi shi,Han shu,Lei he dui xiang,Fan xing,Kuo zhan han shu he shu xing,Wei tuo ji zhi,Yi ji Marvel Gallery xiang mu shi zhan deng nei rong
备用文件名
lgli/(美)马尔钦·莫斯卡拉,(美)伊戈尔·沃吉达著;张博译 - 零基础学Kotlin编程 (2021, 清华大学出版社).pdf
备用文件名
zlib/no-category/(美)马尔钦·莫斯卡拉,(美)伊戈尔·沃吉达著;张博译/零基础学Kotlin编程_17084777.pdf
备选作者
(美) 莫斯卡拉, (Moskala, Marcin)
备选作者
Adobe Acrobat 11.0.10
备选作者
新华书店北美网
备用出版商
Tsinghua University Press
备用出版商
Qinghua University Press
备用版本
China, People's Republic, China
备用版本
Di 1 ban, Beijing, 2018
元数据中的注释
producers:
Adobe Acrobat Pro 11.0 Paper Capture Plug-in; modified using iText庐 5.5.10 漏2000-2015 iText Group NV (AGPL-version) (as-gbk-encoding)
Adobe Acrobat Pro 11.0 Paper Capture Plug-in; modified using iText庐 5.5.10 漏2000-2015 iText Group NV (AGPL-version) (as-gbk-encoding)
元数据中的注释
Bookmarks: p1 (p1): 第1章 开启Kotlin编程之旅
p1-1 (p1): 1.1 Kotlin语言简介
p1-2 (p3): 1.2 示例
p1-3 (p8): 1.3 处理Kotlin代码
p1-3-1 (p8): 1.3.1 Kotlin Playground
p1-3-2 (p10): 1.3.2 Android Studio
p1-4 (p16): 1.4 Kotlin底层机制
p1-5 (p17): 1.5 Kotlin的其他优势
p1-6 (p18): 1.6 本章小结
p2 (p19): 第2章 Kotlin语言基础知识
p2-1 (p19): 2.1 变量
p2-2 (p21): 2.2 类型推断
p2-3 (p24): 2.3 严格的空保护机制
p2-3-1 (p27): 2.3.1 安全调用
p2-3-2 (p28): 2.3.2 elvis操作符
p2-3-3 (p29): 2.3.3 非空断言
p2-3-4 (p30): 2.3.4 let
p2-4 (p30): 2.4 可空性和Java
p2-5 (p32): 2.5 转换
p2-5-1 (p32): 2.5.1 安全/不安全转换操作符
p2-5-2 (p34): 2.5.2 智能转换
p2-6 (p37): 2.6 基本数据类型
p2-6-1 (p38): 2.6.1 数字
p2-6-2 (p40): 2.6.2 字符
p2-6-3 (p40): 2.6.3 数组
p2-6-4 (p42): 2.6.4 布尔类型
p2-7 (p42): 2.7 复合数据类型
p2-7-1 (p42): 2.7.1 字符串
p2-7-2 (p43): 2.7.2 范围
p2-7-3 (p45): 2.7.3 集合
p2-8 (p45): 2.8 语句和表达式
p2-9 (p46): 2.9 控制流
p2-9-1 (p46): 2.9.1 if语句
p2-9-2 (p47): 2.9.2 when表达式
p2-9-3 (p50): 2.9.3 循环
p2-9-4 (p52): 2.9.4 break和continue
p2-10 (p56): 2.10 异常
p2-11 (p59): 2.11 编译期常量
p2-12 (p59): 2.12 委托机制
p2-13 (p60): 2.13 本章小结
p3 (p61): 第3章 函数
p3-1 (p61): 3.1 基本的函数声明和应用
p3-1-1 (p62): 3.1.1 参数
p3-1-2 (p64): 3.1.2 返回函数
p3-2 (p65): 3.2 vararg参数
p3-3 (p67): 3.3 单表达式函数
p3-4 (p69): 3.4 尾递归函数
p3-5 (p70): 3.5 调用函数的不同方式
p3-5-1 (p71): 3.5.1 默认参数值
p3-5-2 (p71): 3.5.2 命名参数语法
p3-6 (p72): 3.6 顶级函数
p3-7 (p74): 3.7 顶级函数的底层机制
p3-8 (p76): 3.8 局部函数
p3-9 (p77): 3.9 无返回类型
p3-10 (p79): 3.10 本章小结
p4 (p80): 第4章 类和对象
p4-1 (p80): 4.1 类
p4-2 (p81): 4.2 属性
p4-2-1 (p84): 4.2.1 读-写属性和只读属性
p4-2-2 (p85): 4.2.2 属性访问语法
p4-2-3 (p88): 4.2.3 自定义getter/setter
p4-2-4 (p91): 4.2.4 延迟初始化属性
p4-2-5 (p92): 4.2.5 注解属性
p4-2-6 (p93): 4.2.6 内联属性
p4-3 (p93): 4.3 构造函数
p4-3-1 (p95): 4.3.1 属性和构造函数参数
p4-3-2 (p96): 4.3.2 包含默认参数的构造函数
p4-4 (p97): 4.4 继承
p4-5 (p101): 4.5 接口
p4-6 (p105): 4.6 数据类
p4-6-1 (p106): 4.6.1 equals和hashCode方法
p4-6-2 (p108): 4.6.2 toString方法
p4-6-3 (p109): 4.6.3 copy方法
p4-6-4 (p110): 4.6.4 解构声明
p4-7 (p111): 4.7 操作符重载
p4-8 (p115): 4.8 对象声明
p4-9 (p117): 4.9 对象表达式
p4-10 (p119): 4.10 伴生对象
p4-11 (p124): 4.11 枚举类
p4-12 (p127): 4.12 命名方法的中缀调用
p4-13 (p130): 4.13 可见性修饰符
p4-14 (p134): 4.14 密封类
p4-15 (p136): 4.15 嵌套类
p4-16 (p137): 4.16 导入别名
p4-17 (p138): 4.17 本章小结
p5 (p140): 第5章 函数——一等公民
p5-1 (p140): 5.1 函数类型
p5-2 (p142): 5.2 匿名函数
p5-3 (p144): 5.3 Lambda表达式
p5-4 (p147): 5.4 高阶函数
p5-4-1 (p149): 5.4.1 向函数提供操作
p5-4-2 (p150): 5.4.2 观察者(监听器)模式
p5-4-3 (p151): 5.4.3 线程操作后的回调
p5-5 (p152): 5.5 命名参数和Lambda表达式的组合
p5-6 (p152): 5.6 参数规则中最后一个Lambda
p5-6-1 (p154): 5.6.1 命名代码的包围机制
p5-6-2 (p155): 5.6.2 利用LINQ风格处理数据结构
p5-7 (p156): 5.7 Kotlin中的Java SAM支持
p5-8 (p158): 5.8 命名Kotlin函数类型
p5-8-1 (p158): 5.8.1 函数类型中的命名参数
p5-8-2 (p160): 5.8.2 类型别名
p5-9 (p162): 5.9 针对未使用变量的下划线
p5-10 (p162): 5.10 Lambda表达式中的解构机制
p5-11 (p164): 5.11 内联函数
p5-11-1 (p167): 5.11.1 noinline修饰符
p5-11-2 (p167): 5.11.2 非本地返回
p5-11-3 (p170): 5.11.3 Lambda表达式中的标记返回
p5-11-4 (p173): 5.11.4 crossinline修饰符
p5-11-5 (p174): 5.11.5 inline属性
p5-12 (p175): 5.12 函数引用
p5-13 (p178): 5.13 本章小结
p6 (p179): 第6章 泛型
p6-1 (p179): 6.1 泛型概述
p6-2 (p181): 6.2 泛型约束条件
p6-3 (p184): 6.3 变型
p6-3-1 (p186): 6.3.1 变型修饰符
p6-3-2 (p187): 6.3.2 使用位置变型和声明位置变型
p6-3-3 (p189): 6.3.3 集合变型
p6-3-4 (p191): 6.3.4 变型的生产者/消费者限制条件
p6-3-5 (p193): 6.3.5 不可变构造函数
p6-4 (p193): 6.4 类型擦除
p6-4-1 (p195): 6.4.1 reified类型参数
p6-4-2 (p196): 6.4.2 startActivity方法
p6-5 (p197): 6.5 星号投射
p6-6 (p199): 6.6 类型参数命名规则
p6-7 (p200): 6.7 本章小结
p7 (p201): 第7章 扩展函数和属性
p7-1 (p201): 7.1 扩展函数
p7-1-1 (p203): 7.1.1 扩展函数底层机制
p7-1-2 (p206): 7.1.2 伴生对象扩展
p7-1-3 (p207): 7.1.3 通过扩展函数重载操作符
p7-1-4 (p207): 7.1.4 顶级函数的应用位置
p7-2 (p208): 7.2 扩展属性
p7-3 (p211): 7.3 成员扩展函数和属性
p7-3-1 (p214): 7.3.1 接收者类型
p7-3-2 (p216): 7.3.2 成员扩展函数和属性的底层机制
p7-4 (p217): 7.4 泛型扩展函数
p7-4-1 (p220): 7.4.1 Kotlin集合类型层次结构
p7-4-2 (p223): 7.4.2 map、filter和flatMap函数
p7-4-3 (p225): 7.4.3 forEach和onEach函数
p7-4-4 (p225): 7.4.4 withIndex以及索引变化版本
p7-4-5 (p226): 7.4.5 sum、count、min、max和排序函数
p7-4-6 (p229): 7.4.6 其他流处理函数
p7-4-7 (p230): 7.4.7 集合流处理示例
p7-4-8 (p231): 7.4.8 序列
p7-5 (p233): 7.5 包含接收者的函数字面值
p7-5-1 (p234): 7.5.1 Kotlin标准库函数
p7-5-2 (p241): 7.5.2 特定领域内的语言
p7-6 (p248): 7.6 本章小结
p8 (p249): 第8章 委托机制
p8-1 (p249): 8.1 类委托
p8-1-1 (p249): 8.1.1 委托模式
p8-1-2 (p254): 8.1.2 装饰器模式
p8-2 (p256): 8.2 属性委托
p8-2-1 (p256): 8.2.1 属性委托的含义
p8-2-2 (p259): 8.2.2 预定义委托
p8-2-3 (p272): 8.2.3 自定义委托
p8-3 (p282): 8.3 本章小结
p9 (p283): 第9章 Marvel Gallery项目实战
p9-1 (p283): 9.1 Marvel Gallery应用程序
p9-1-1 (p283): 9.1.1 如何阅读本章内容
p9-1-2 (p286): 9.1.2 创建空项目
p9-1-3 (p288): 9.1.3 任务图片库
p9-1-4 (p328): 9.1.4 人物角色搜索
p9-1-5 (p338): 9.1.5 人物角色的资料显示
p9-2 (p353): 9.2 本章小结
p1-1 (p1): 1.1 Kotlin语言简介
p1-2 (p3): 1.2 示例
p1-3 (p8): 1.3 处理Kotlin代码
p1-3-1 (p8): 1.3.1 Kotlin Playground
p1-3-2 (p10): 1.3.2 Android Studio
p1-4 (p16): 1.4 Kotlin底层机制
p1-5 (p17): 1.5 Kotlin的其他优势
p1-6 (p18): 1.6 本章小结
p2 (p19): 第2章 Kotlin语言基础知识
p2-1 (p19): 2.1 变量
p2-2 (p21): 2.2 类型推断
p2-3 (p24): 2.3 严格的空保护机制
p2-3-1 (p27): 2.3.1 安全调用
p2-3-2 (p28): 2.3.2 elvis操作符
p2-3-3 (p29): 2.3.3 非空断言
p2-3-4 (p30): 2.3.4 let
p2-4 (p30): 2.4 可空性和Java
p2-5 (p32): 2.5 转换
p2-5-1 (p32): 2.5.1 安全/不安全转换操作符
p2-5-2 (p34): 2.5.2 智能转换
p2-6 (p37): 2.6 基本数据类型
p2-6-1 (p38): 2.6.1 数字
p2-6-2 (p40): 2.6.2 字符
p2-6-3 (p40): 2.6.3 数组
p2-6-4 (p42): 2.6.4 布尔类型
p2-7 (p42): 2.7 复合数据类型
p2-7-1 (p42): 2.7.1 字符串
p2-7-2 (p43): 2.7.2 范围
p2-7-3 (p45): 2.7.3 集合
p2-8 (p45): 2.8 语句和表达式
p2-9 (p46): 2.9 控制流
p2-9-1 (p46): 2.9.1 if语句
p2-9-2 (p47): 2.9.2 when表达式
p2-9-3 (p50): 2.9.3 循环
p2-9-4 (p52): 2.9.4 break和continue
p2-10 (p56): 2.10 异常
p2-11 (p59): 2.11 编译期常量
p2-12 (p59): 2.12 委托机制
p2-13 (p60): 2.13 本章小结
p3 (p61): 第3章 函数
p3-1 (p61): 3.1 基本的函数声明和应用
p3-1-1 (p62): 3.1.1 参数
p3-1-2 (p64): 3.1.2 返回函数
p3-2 (p65): 3.2 vararg参数
p3-3 (p67): 3.3 单表达式函数
p3-4 (p69): 3.4 尾递归函数
p3-5 (p70): 3.5 调用函数的不同方式
p3-5-1 (p71): 3.5.1 默认参数值
p3-5-2 (p71): 3.5.2 命名参数语法
p3-6 (p72): 3.6 顶级函数
p3-7 (p74): 3.7 顶级函数的底层机制
p3-8 (p76): 3.8 局部函数
p3-9 (p77): 3.9 无返回类型
p3-10 (p79): 3.10 本章小结
p4 (p80): 第4章 类和对象
p4-1 (p80): 4.1 类
p4-2 (p81): 4.2 属性
p4-2-1 (p84): 4.2.1 读-写属性和只读属性
p4-2-2 (p85): 4.2.2 属性访问语法
p4-2-3 (p88): 4.2.3 自定义getter/setter
p4-2-4 (p91): 4.2.4 延迟初始化属性
p4-2-5 (p92): 4.2.5 注解属性
p4-2-6 (p93): 4.2.6 内联属性
p4-3 (p93): 4.3 构造函数
p4-3-1 (p95): 4.3.1 属性和构造函数参数
p4-3-2 (p96): 4.3.2 包含默认参数的构造函数
p4-4 (p97): 4.4 继承
p4-5 (p101): 4.5 接口
p4-6 (p105): 4.6 数据类
p4-6-1 (p106): 4.6.1 equals和hashCode方法
p4-6-2 (p108): 4.6.2 toString方法
p4-6-3 (p109): 4.6.3 copy方法
p4-6-4 (p110): 4.6.4 解构声明
p4-7 (p111): 4.7 操作符重载
p4-8 (p115): 4.8 对象声明
p4-9 (p117): 4.9 对象表达式
p4-10 (p119): 4.10 伴生对象
p4-11 (p124): 4.11 枚举类
p4-12 (p127): 4.12 命名方法的中缀调用
p4-13 (p130): 4.13 可见性修饰符
p4-14 (p134): 4.14 密封类
p4-15 (p136): 4.15 嵌套类
p4-16 (p137): 4.16 导入别名
p4-17 (p138): 4.17 本章小结
p5 (p140): 第5章 函数——一等公民
p5-1 (p140): 5.1 函数类型
p5-2 (p142): 5.2 匿名函数
p5-3 (p144): 5.3 Lambda表达式
p5-4 (p147): 5.4 高阶函数
p5-4-1 (p149): 5.4.1 向函数提供操作
p5-4-2 (p150): 5.4.2 观察者(监听器)模式
p5-4-3 (p151): 5.4.3 线程操作后的回调
p5-5 (p152): 5.5 命名参数和Lambda表达式的组合
p5-6 (p152): 5.6 参数规则中最后一个Lambda
p5-6-1 (p154): 5.6.1 命名代码的包围机制
p5-6-2 (p155): 5.6.2 利用LINQ风格处理数据结构
p5-7 (p156): 5.7 Kotlin中的Java SAM支持
p5-8 (p158): 5.8 命名Kotlin函数类型
p5-8-1 (p158): 5.8.1 函数类型中的命名参数
p5-8-2 (p160): 5.8.2 类型别名
p5-9 (p162): 5.9 针对未使用变量的下划线
p5-10 (p162): 5.10 Lambda表达式中的解构机制
p5-11 (p164): 5.11 内联函数
p5-11-1 (p167): 5.11.1 noinline修饰符
p5-11-2 (p167): 5.11.2 非本地返回
p5-11-3 (p170): 5.11.3 Lambda表达式中的标记返回
p5-11-4 (p173): 5.11.4 crossinline修饰符
p5-11-5 (p174): 5.11.5 inline属性
p5-12 (p175): 5.12 函数引用
p5-13 (p178): 5.13 本章小结
p6 (p179): 第6章 泛型
p6-1 (p179): 6.1 泛型概述
p6-2 (p181): 6.2 泛型约束条件
p6-3 (p184): 6.3 变型
p6-3-1 (p186): 6.3.1 变型修饰符
p6-3-2 (p187): 6.3.2 使用位置变型和声明位置变型
p6-3-3 (p189): 6.3.3 集合变型
p6-3-4 (p191): 6.3.4 变型的生产者/消费者限制条件
p6-3-5 (p193): 6.3.5 不可变构造函数
p6-4 (p193): 6.4 类型擦除
p6-4-1 (p195): 6.4.1 reified类型参数
p6-4-2 (p196): 6.4.2 startActivity方法
p6-5 (p197): 6.5 星号投射
p6-6 (p199): 6.6 类型参数命名规则
p6-7 (p200): 6.7 本章小结
p7 (p201): 第7章 扩展函数和属性
p7-1 (p201): 7.1 扩展函数
p7-1-1 (p203): 7.1.1 扩展函数底层机制
p7-1-2 (p206): 7.1.2 伴生对象扩展
p7-1-3 (p207): 7.1.3 通过扩展函数重载操作符
p7-1-4 (p207): 7.1.4 顶级函数的应用位置
p7-2 (p208): 7.2 扩展属性
p7-3 (p211): 7.3 成员扩展函数和属性
p7-3-1 (p214): 7.3.1 接收者类型
p7-3-2 (p216): 7.3.2 成员扩展函数和属性的底层机制
p7-4 (p217): 7.4 泛型扩展函数
p7-4-1 (p220): 7.4.1 Kotlin集合类型层次结构
p7-4-2 (p223): 7.4.2 map、filter和flatMap函数
p7-4-3 (p225): 7.4.3 forEach和onEach函数
p7-4-4 (p225): 7.4.4 withIndex以及索引变化版本
p7-4-5 (p226): 7.4.5 sum、count、min、max和排序函数
p7-4-6 (p229): 7.4.6 其他流处理函数
p7-4-7 (p230): 7.4.7 集合流处理示例
p7-4-8 (p231): 7.4.8 序列
p7-5 (p233): 7.5 包含接收者的函数字面值
p7-5-1 (p234): 7.5.1 Kotlin标准库函数
p7-5-2 (p241): 7.5.2 特定领域内的语言
p7-6 (p248): 7.6 本章小结
p8 (p249): 第8章 委托机制
p8-1 (p249): 8.1 类委托
p8-1-1 (p249): 8.1.1 委托模式
p8-1-2 (p254): 8.1.2 装饰器模式
p8-2 (p256): 8.2 属性委托
p8-2-1 (p256): 8.2.1 属性委托的含义
p8-2-2 (p259): 8.2.2 预定义委托
p8-2-3 (p272): 8.2.3 自定义委托
p8-3 (p282): 8.3 本章小结
p9 (p283): 第9章 Marvel Gallery项目实战
p9-1 (p283): 9.1 Marvel Gallery应用程序
p9-1-1 (p283): 9.1.1 如何阅读本章内容
p9-1-2 (p286): 9.1.2 创建空项目
p9-1-3 (p288): 9.1.3 任务图片库
p9-1-4 (p328): 9.1.4 人物角色搜索
p9-1-5 (p338): 9.1.5 人物角色的资料显示
p9-2 (p353): 9.2 本章小结
备用描述
第1章 开启Kotlin编程之旅 16
1. 16
Kotlin语言简介 16
1.2 示例 18
1.3 处理Kotlin代码 23
1.3. 16
Kotlin Playground 23
1.3. 17
Android Studio 25
1. 19
Kotlin底层机制 31
1. 20
Kotlin的其他优势 32
1.6 本章小结 33
第2章 Kotlin语言基础知识 34
2.1 变量 34
2.2 类型推断 36
2.3 严格的空保护机制 39
2.3. 16
安全调用 42
2.3. 17
elvis操作符 43
2.3. 18
非空断言 44
2.3. 19
let 45
2.4 可空性和Java 45
2.5 转换 47
2.5. 16
安全/不安全转换操作符 47
2.5. 17
智能转换 49
2.6 基本数据类型 52
2.6. 16
数字 53
2.6. 17
字符 55
2.6. 18
数组 55
2.6. 19
布尔类型 57
2.7 复合数据类型 57
2.7. 16
字符串 57
2.7. 17
范围 58
2.7. 18
集合 60
2.8 语句和表达式 60
2.9 控制流 61
2.9. 16
if语句 61
2.9. 17
when表达式 62
2.9. 18
循环 65
2.9. 19
break和continue 67
2.1 15
异常 71
2.1 16
编译期常量 74
2.1 17
委托机制 74
2.1 18
本章小结 75
第3章 函数 76
3.1 基本的函数声明和应用 76
3.1. 16
参数 77
3.1. 17
返回函数 79
3. 17
vararg参数 80
3.3 单表达式函数 82
3.4 尾递归函数 84
3.5 调用函数的不同方式 85
3.5. 16
默认参数值 86
3.5. 17
命名参数语法 86
3.6 顶级函数 87
3.7 顶级函数的底层机制 89
3.8 局部函数 91
3.9 无返回类型 92
3.1 15
本章小结 94
第4章 类和对象 95
4.1 类 95
4.2 属性 96
4.2. 16
读-写属性和只读属性 99
4.2. 17
属性访问语法 100
4.2. 18
自定义getter/setter 103
4.2. 19
延迟初始化属性 106
4.2. 20
注解属性 107
4.2. 21
内联属性 108
4.3 构造函数 108
4.3. 16
属性和构造函数参数 110
4.3. 17
包含默认参数的构造函数 111
4.4 继承 112
4.5 接口 116
4.6 数据类 120
4.6. 16
equals和hashCode方法 121
4.6. 17
toString方法 123
4.6. 18
copy方法 124
4.6. 19
解构声明 125
4.7 操作符重载 126
4.8 对象声明 130
4.9 对象表达式 132
4.1 15
伴生对象 134
4.1 16
枚举类 139
4.1 17
命名方法的中缀调用 142
4.1 18
可见性修饰符 145
4.1 19
密封类 149
4.1 20
嵌套类 151
4.1 21
导入别名 152
4.1 22
本章小结 153
第5章 函数—一等公民 155
5.1 函数类型 155
5.2 匿名函数 157
5. 18
Lambda表达式 159
5.4 高阶函数 162
5.4. 16
向函数提供操作 164
5.4. 17
观察者(监听器)模式 165
5.4. 18
线程操作后的回调 166
5.5 命名参数和Lambda表达式的组合 167
5.6 参数规则中最后一个Lambda -1
15 17
5.6. 16
命名代码的包围机制 169
5.6. 17
利用LINQ风格处理数据结构 170
5. 22
Kotlin中的Java SAM支持 171
5.8 命名Kotlin函数类型 173
5.8. 16
函数类型中的命名参数 173
5.8. 17
类型别名 175
5.9 针对未使用变量的下划线 -1
16 17
5.1 15
Lambda表达式中的解构机制 177
5.1 16
内联函数 179
5.11. 16
noinline修饰符 182
5.11. 17
非本地返回 182
5.11. 18
Lambda表达式中的标记返回 185
5.11. 19
crossinline修饰符 188
5.11. 20
inline属性 189
5.1 17
函数引用 190
5.1 18
本章小结 193
第6章 泛型 194
6.1 泛型概述 194
6.2 泛型约束条件 196
6.3 变型 199
6.3. 16
变型修饰符 201
6.3. 17
使用位置变型和声明位置变型 202
6.3. 18
集合变型 204
6.3. 19
变型的生产者/消费者限制条件 206
6.3. 20
不可变构造函数 208
6.4 类型擦除 208
6.4. 16
reified类型参数 210
6.4. 17
startActivity方法 211
6.5 星号投射 212
6.6 类型参数命名规则 214
6.7 本章小结 215
第7章 扩展函数和属性 216
7.1 扩展函数 216
7.1. 16
扩展函数底层机制 218
7.1. 17
伴生对象扩展 221
7.1. 18
通过扩展函数重载操作符 222
7.1. 19
顶级函数的应用位置 222
7.2 扩展属性 223
7.3 成员扩展函数和属性 226
7.3. 16
接收者类型 229
7.3. 17
成员扩展函数和属性的底层机制 231
7.4 泛型扩展函数 232
7.4. 16
Kotlin集合类型层次结构 235
7.4. 17
map、filter和flatMap函数 238
7.4. 18
forEach和onEach函数 240
7.4. 19
withIndex以及索引变化版本 240
7.4. 20
sum、count、min、max和排序函数 241
7.4. 21
其他流处理函数 244
7.4. 22
集合流处理示例 245
7.4. 23
序列 246
7.5 包含接收者的函数字面值 -1
23 18
7.5. 16
Kotlin标准库函数 249
7.5. 17
特定领域内的语言 256
7.6 本章小结 263
第8章 委托机制 264
8.1 类委托 264
8.1. 16
委托模式 264
8.1. 17
装饰器模式 269
8.2 属性委托 271
8.2. 16
属性委托的含义 271
8.2. 17
预定义委托 274
8.2. 18
自定义委托 287
8.3 本章小结 297
第9章 Marvel Gallery项目实战 298
9. 16
Marvel Gallery应用程序 298
9.1. 16
如何阅读本章内容 298
9.1. 17
创建空项目 301
9.1.3 任务图片库 303
9.1. 19
人物角色搜索 343
9.1. 20
人物角色的资料显示 353
9.2 本章小结 368
1. 16
Kotlin语言简介 16
1.2 示例 18
1.3 处理Kotlin代码 23
1.3. 16
Kotlin Playground 23
1.3. 17
Android Studio 25
1. 19
Kotlin底层机制 31
1. 20
Kotlin的其他优势 32
1.6 本章小结 33
第2章 Kotlin语言基础知识 34
2.1 变量 34
2.2 类型推断 36
2.3 严格的空保护机制 39
2.3. 16
安全调用 42
2.3. 17
elvis操作符 43
2.3. 18
非空断言 44
2.3. 19
let 45
2.4 可空性和Java 45
2.5 转换 47
2.5. 16
安全/不安全转换操作符 47
2.5. 17
智能转换 49
2.6 基本数据类型 52
2.6. 16
数字 53
2.6. 17
字符 55
2.6. 18
数组 55
2.6. 19
布尔类型 57
2.7 复合数据类型 57
2.7. 16
字符串 57
2.7. 17
范围 58
2.7. 18
集合 60
2.8 语句和表达式 60
2.9 控制流 61
2.9. 16
if语句 61
2.9. 17
when表达式 62
2.9. 18
循环 65
2.9. 19
break和continue 67
2.1 15
异常 71
2.1 16
编译期常量 74
2.1 17
委托机制 74
2.1 18
本章小结 75
第3章 函数 76
3.1 基本的函数声明和应用 76
3.1. 16
参数 77
3.1. 17
返回函数 79
3. 17
vararg参数 80
3.3 单表达式函数 82
3.4 尾递归函数 84
3.5 调用函数的不同方式 85
3.5. 16
默认参数值 86
3.5. 17
命名参数语法 86
3.6 顶级函数 87
3.7 顶级函数的底层机制 89
3.8 局部函数 91
3.9 无返回类型 92
3.1 15
本章小结 94
第4章 类和对象 95
4.1 类 95
4.2 属性 96
4.2. 16
读-写属性和只读属性 99
4.2. 17
属性访问语法 100
4.2. 18
自定义getter/setter 103
4.2. 19
延迟初始化属性 106
4.2. 20
注解属性 107
4.2. 21
内联属性 108
4.3 构造函数 108
4.3. 16
属性和构造函数参数 110
4.3. 17
包含默认参数的构造函数 111
4.4 继承 112
4.5 接口 116
4.6 数据类 120
4.6. 16
equals和hashCode方法 121
4.6. 17
toString方法 123
4.6. 18
copy方法 124
4.6. 19
解构声明 125
4.7 操作符重载 126
4.8 对象声明 130
4.9 对象表达式 132
4.1 15
伴生对象 134
4.1 16
枚举类 139
4.1 17
命名方法的中缀调用 142
4.1 18
可见性修饰符 145
4.1 19
密封类 149
4.1 20
嵌套类 151
4.1 21
导入别名 152
4.1 22
本章小结 153
第5章 函数—一等公民 155
5.1 函数类型 155
5.2 匿名函数 157
5. 18
Lambda表达式 159
5.4 高阶函数 162
5.4. 16
向函数提供操作 164
5.4. 17
观察者(监听器)模式 165
5.4. 18
线程操作后的回调 166
5.5 命名参数和Lambda表达式的组合 167
5.6 参数规则中最后一个Lambda -1
15 17
5.6. 16
命名代码的包围机制 169
5.6. 17
利用LINQ风格处理数据结构 170
5. 22
Kotlin中的Java SAM支持 171
5.8 命名Kotlin函数类型 173
5.8. 16
函数类型中的命名参数 173
5.8. 17
类型别名 175
5.9 针对未使用变量的下划线 -1
16 17
5.1 15
Lambda表达式中的解构机制 177
5.1 16
内联函数 179
5.11. 16
noinline修饰符 182
5.11. 17
非本地返回 182
5.11. 18
Lambda表达式中的标记返回 185
5.11. 19
crossinline修饰符 188
5.11. 20
inline属性 189
5.1 17
函数引用 190
5.1 18
本章小结 193
第6章 泛型 194
6.1 泛型概述 194
6.2 泛型约束条件 196
6.3 变型 199
6.3. 16
变型修饰符 201
6.3. 17
使用位置变型和声明位置变型 202
6.3. 18
集合变型 204
6.3. 19
变型的生产者/消费者限制条件 206
6.3. 20
不可变构造函数 208
6.4 类型擦除 208
6.4. 16
reified类型参数 210
6.4. 17
startActivity方法 211
6.5 星号投射 212
6.6 类型参数命名规则 214
6.7 本章小结 215
第7章 扩展函数和属性 216
7.1 扩展函数 216
7.1. 16
扩展函数底层机制 218
7.1. 17
伴生对象扩展 221
7.1. 18
通过扩展函数重载操作符 222
7.1. 19
顶级函数的应用位置 222
7.2 扩展属性 223
7.3 成员扩展函数和属性 226
7.3. 16
接收者类型 229
7.3. 17
成员扩展函数和属性的底层机制 231
7.4 泛型扩展函数 232
7.4. 16
Kotlin集合类型层次结构 235
7.4. 17
map、filter和flatMap函数 238
7.4. 18
forEach和onEach函数 240
7.4. 19
withIndex以及索引变化版本 240
7.4. 20
sum、count、min、max和排序函数 241
7.4. 21
其他流处理函数 244
7.4. 22
集合流处理示例 245
7.4. 23
序列 246
7.5 包含接收者的函数字面值 -1
23 18
7.5. 16
Kotlin标准库函数 249
7.5. 17
特定领域内的语言 256
7.6 本章小结 263
第8章 委托机制 264
8.1 类委托 264
8.1. 16
委托模式 264
8.1. 17
装饰器模式 269
8.2 属性委托 271
8.2. 16
属性委托的含义 271
8.2. 17
预定义委托 274
8.2. 18
自定义委托 287
8.3 本章小结 297
第9章 Marvel Gallery项目实战 298
9. 16
Marvel Gallery应用程序 298
9.1. 16
如何阅读本章内容 298
9.1. 17
创建空项目 301
9.1.3 任务图片库 303
9.1. 19
人物角色搜索 343
9.1. 20
人物角色的资料显示 353
9.2 本章小结 368
备用描述
本书阐述了与Kotlin程序设计相关的基本解决方案,主要包括Kotlin语言基础知识,函数,类和对象,泛型,扩展函数和属性,委托机制,以及Marvel Gallery项目实战等内容
开源日期
2021-08-24
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.