注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Kotlin編程權(quán)威指南

Kotlin編程權(quán)威指南

Kotlin編程權(quán)威指南

定 價:¥99.00

作 者: 喬希·斯基恩(Josh Skeen),戴維·格林哈爾希(David Greenhalgh) 著,王明發(fā) 譯
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115515636 出版時間: 2019-08-01 包裝: 平裝
開本: 16開 頁數(shù): 322 字數(shù):  

內(nèi)容簡介

  本書由知名技術(shù)培訓(xùn)機構(gòu)Big Nerd Ranch打造,秉承其一貫的簡潔、實用的寫作風(fēng)格。Kotlin已成為Android官方支持的開發(fā)語言,但它具有平臺獨立性,亦可用于開發(fā)各種類型的原生應(yīng)用。本書將帶領(lǐng)你通過搭建書中的示例項目來循序漸進地掌握Kotlin 的用法。首先使用IntelliJ IDEA搭建沙盒項目,幫助你熟悉開發(fā)環(huán)境。接下來介紹Kotlin編程知識,從較為基礎(chǔ)的變量、常量、類型等講起,逐漸深入到繼承、對象和抽象類。最后是函數(shù)式編程、Kotlin與Java互操作、構(gòu)建Android應(yīng)用等較復(fù)雜的內(nèi)容。多章配有習(xí)題,幫你溫故知新,鞏固所學(xué)知識。

作者簡介

  作者簡介喬希·斯基恩(Josh Skeen)軟件開發(fā)工程師,Big Nerd Ranch培訓(xùn)師,在世界各地講授Java、Android應(yīng)用開發(fā)以及Kotlin的課程。畢業(yè)于庫伯高等科學(xué)藝術(shù)聯(lián)盟學(xué)院。戴維·格林哈爾希(David Greenhalgh)Android開發(fā)人員,Big Nerd Ranch培訓(xùn)師。畢業(yè)于佐治亞理工學(xué)院。譯者簡介王明發(fā)畢業(yè)于華東理工大學(xué)。軟件開發(fā)及項目管理者,擁有十多年的軟件開發(fā)及項目管理經(jīng)驗。除本書之外,另譯有《Android 編程**指南》一書。

圖書目錄

第 1章 Kotlin應(yīng)用開發(fā)初體驗 1
1.1 安裝IntelliJ IDEA 1
1.2 第 一個Kotlin項目 2
1.2.1 創(chuàng)建首個Kotlin文件 5
1.2.2 運行Kotlin文件 7
1.3 Kotlin REPL 8
1.4 深入學(xué)習(xí):為什么要用IntelliJ 10
1.5 深入學(xué)習(xí):面向JVM 10
1.6 挑戰(zhàn)練習(xí):使用REPL研究Kotlin中的算數(shù)運算符 11
第 2章 變量、常量和類型 12
2.1 數(shù)據(jù)類型 12
2.2 聲明變量 12
2.3 Kotlin的內(nèi)置數(shù)據(jù)類型 14
2.4 只讀變量 15
2.5 類型推斷 17
2.6 編譯時常量 19
2.7 查看Kotlin字節(jié)碼 19
2.8 深入學(xué)習(xí):Kotlin中的Java基本數(shù)據(jù)類型 21
2.9 挑戰(zhàn)練習(xí):定義hasSteed變量 22
2.10 挑戰(zhàn)練習(xí):獨角獸之角 22
2.11 挑戰(zhàn)練習(xí):魔鏡 23
第3章 條件語句 24
3.1 if/else語句 24
3.1.1 添加更多條件 27
3.1.2 if/else嵌套語句 28
3.1.3 更優(yōu)雅的條件語句 29
3.2 range 33
3.3 when表達式 34
3.4 string模板 36
3.5 挑戰(zhàn)練習(xí):range 研究 37
3.6 挑戰(zhàn)練習(xí):優(yōu)化玩家光環(huán)展示 38
3.7 挑戰(zhàn)練習(xí):可配置的玩家狀況報告格式 38
第4章 函數(shù) 40
4.1 使用函數(shù)重構(gòu)代碼 40
4.2 函數(shù)結(jié)構(gòu)剖析 42
4.2.1 函數(shù)頭 42
4.2.2 函數(shù)體 44
4.2.3 函數(shù)作用域 45
4.3 調(diào)用函數(shù) 46
4.4 以函數(shù)重構(gòu)代碼 46
4.5 自定義函數(shù) 48
4.6 默認值參 49
4.7 單表達式函數(shù) 50
4.8 Unit函數(shù) 51
4.9 具名函數(shù)參數(shù) 52
4.10 深入學(xué)習(xí):Nothing類型 53
4.11 深入學(xué)習(xí):Java中的文件級函數(shù) 54
4.12 深入學(xué)習(xí):函數(shù)重載 55
4.13 深入學(xué)習(xí):反引號中的函數(shù)名 56
4.14 挑戰(zhàn)練習(xí):單表達式函數(shù) 57
4.15 挑戰(zhàn)練習(xí):Fireball醉酒程度 57
4.16 挑戰(zhàn)練習(xí):醉酒狀態(tài)報告 57
第5章 匿名函數(shù)與函數(shù)類型 58
5.1 匿名函數(shù) 58
5.1.1 函數(shù)類型 59
5.1.2 隱式返回 60
5.1.3 函數(shù)參數(shù) 61
5.1.4 it關(guān)鍵字 61
5.1.5 多個參數(shù) 62
5.2 類型推斷 63
5.3 定義參數(shù)是函數(shù)的函數(shù) 63
5.4 函數(shù)內(nèi)聯(lián) 65
5.5 函數(shù)引用 66
5.6 函數(shù)類型作為返回類型 68
5.7 深入學(xué)習(xí):Kotlin中的lambda就是閉包 69
5.8 深入學(xué)習(xí):lambda與匿名內(nèi)部類 69
第6章 null安全與異?!?1
6.1 可空性 71
6.2 Kotlin的null類型 72
6.3 編譯時間與運行時間 73
6.4 null安全 74
6.4.1 選項一:安全調(diào)用操作符 75
6.4.2 選項二:使用!!.操作符 76
6.4.3 選項三:使用if判斷null值情況 77
6.5 異?!?9
6.5.1 拋出異?!?0
6.5.2 自定義異常 81
6.5.3 處理異?!?2
6.6 先決條件函數(shù) 83
6.7 null:真的一無是處嗎 85
6.8 深入學(xué)習(xí):已檢查異常與未檢查異?!?6
6.9 深入學(xué)習(xí):可空性該如何保證 86
第7章 字符串 88
7.1 字符串截取 88
7.1.1 substring 88
7.1.2 split 90
7.2 字符串操作 92
7.3 字符串比較 93
7.4 深入學(xué)習(xí):Unicode 95
7.5 深入學(xué)習(xí):遍歷字符 95
7.6 挑戰(zhàn)練習(xí):改進toDragonSpeak函數(shù) 96
第8章 數(shù) 97
8.1 數(shù)字類型 97
8.2 整數(shù) 98
8.3 小數(shù)數(shù)字 99
8.4 字符串轉(zhuǎn)數(shù)值類型 100
8.5 Int類型轉(zhuǎn)Double類型 101
8.6 Double類型格式化 102
8.7 Double類型轉(zhuǎn)換為Int類型 103
8.8 深入學(xué)習(xí):位運算 104
8.9 挑戰(zhàn)練習(xí):還剩多少酒 105
8.10 挑戰(zhàn)練習(xí):解決負數(shù)余額問題 105
8.11 挑戰(zhàn)練習(xí):龍幣 105
第9章 標(biāo)準(zhǔn)庫函數(shù) 106
9.1 apply 106
9.2 let 107
9.3 run 108
9.4 with 109
9.5 also 109
9.6 takeIf 110
9.7 使用標(biāo)準(zhǔn)庫函數(shù) 110
第 10章 List與Set 112
10.1 List 112
10.1.1 獲取列表元素 113
10.1.2 更改列表內(nèi)容 116
10.2 遍歷 119
10.3 將文件數(shù)據(jù)讀取到列表 122
10.4 解構(gòu) 124
10.5 Set 124
10.5.1 創(chuàng)建一個Set集合 124
10.5.2 向Set集合中添加元素 125
10.6 while循環(huán) 128
10.7 break表達式 129
10.8 集合轉(zhuǎn)換 129
10.9 深入學(xué)習(xí):數(shù)組類型 130
10.10 深入學(xué)習(xí):只讀與不可變 131
10.11 挑戰(zhàn)練習(xí):美化酒水單 132
10.12 挑戰(zhàn)練習(xí):進一步美化酒水單 132
第 11章 Map 133
11.1 創(chuàng)建一個Map 133
11.2 讀取Map集合的值 135
11.3 向Map集合添加項 136
11.4 修改Map集合值 137
11.5 挑戰(zhàn)練習(xí):守衛(wèi)小客棧 140
第 12章 定義類 141
12.1 定義一個類 141
12.2 構(gòu)造實例 141
12.3 類函數(shù) 142
12.4 可見性與封裝 143
12.5 類屬性 144
12.5.1 屬性getter與setter 146
12.5.2 屬性可見性 148
12.5.3 計算屬性 149
12.6 重構(gòu)NyetHack 149
12.7 使用包 156
12.8 深入學(xué)習(xí):細看var與val屬性 157
12.9 深入學(xué)習(xí):防范競態(tài)條件 160
12.10 深入學(xué)習(xí):私有包 161
第 13章 初始化 162
13.1 構(gòu)造函數(shù) 162
13.1.1 主構(gòu)造函數(shù) 163
13.1.2 在主構(gòu)造函數(shù)里定義屬性 164
13.1.3 次構(gòu)造函數(shù) 164
13.1.4 默認參數(shù) 166
13.1.5 命名參數(shù) 167
13.2 初始化塊 167
13.3 屬性初始化 168
13.4 初始化順序 170
13.5 延遲初始化 172
13.5.1 延遲初始化 172
13.5.2 惰性初始化 173
13.6 深入學(xué)習(xí):初始化陷阱 174
13.7 挑戰(zhàn)練習(xí):圣劍之謎 176
第 14章 繼承 178
14.1 定義Room類 178
14.2 創(chuàng)建子類 179
14.3 類型檢測 184
14.4 Kotlin類層次 186
14.4.1 類型轉(zhuǎn)換 187
14.4.2 智能類型轉(zhuǎn)換 188
14.5 深入學(xué)習(xí):Any 189
第 15章 對象 190
15.1 object關(guān)鍵字 190
15.1.1 對象聲明 190
15.1.2 對象表達式 195
15.1.3 伴生對象 195
15.2 嵌套類 196
15.3 數(shù)據(jù)類 199
15.3.1 toString 200
15.3.2 equals 200
15.3.3 copy 200
15.3.4 解構(gòu)聲明 201
15.4 枚舉類 202
15.5 運算符重載 203
15.6 探索NyetHack游戲世界 205
15.7 深入學(xué)習(xí):定義結(jié)構(gòu)比較 208
15.8 深入學(xué)習(xí):代數(shù)數(shù)據(jù)類型 210
15.9 挑戰(zhàn)練習(xí):“quit”命令 211
15.10 挑戰(zhàn)練習(xí):魔力地圖 212
15.11 挑戰(zhàn)練習(xí):搖鈴 212
第 16章 接口與抽象類 213
16.1 定義接口 213
16.2 實現(xiàn)接口 214
16.3 默認實現(xiàn) 216
16.4 抽象類 217
16.5 在NyetHack 游戲里打怪 219
第 17章 泛型 223
17.1 定義泛型類 223
17.2 泛型函數(shù) 224
17.3 多泛型參數(shù) 225
17.4 泛型約束 227
17.5 vararg關(guān)鍵字與get函數(shù) 228
17.6 in與out 230
17.7 深入學(xué)習(xí):reified關(guān)鍵字 234
第 18章 擴展 236
18.1 定義擴展函數(shù) 236
18.2 泛型擴展函數(shù) 237
18.3 擴展屬性 239
18.4 可空類擴展 240
18.5 擴展實現(xiàn)揭秘 241
18.6 用擴展封裝代碼 241
18.7 定義擴展文件 243
18.8 重命名擴展 245
18.9 Kotlin標(biāo)準(zhǔn)庫中的擴展 245
18.10 深入學(xué)習(xí):帶接收者的函數(shù)字面量 246
18.11 挑戰(zhàn)練習(xí):toDragonSpeak擴展 247
18.12 挑戰(zhàn)練習(xí):frame擴展 247
第 19章 函數(shù)式編程基礎(chǔ) 248
19.1 函數(shù)類別 248
19.1.1 變換 248
19.1.2 過濾 250
19.1.3 合并 251
19.2 為什么要學(xué)習(xí)函數(shù)式編程 252
19.3 序列 253
19.4 深入學(xué)習(xí):評估代碼性能 254
19.5 深入學(xué)習(xí):Arrow.kt 255
19.6 挑戰(zhàn)練習(xí):Map值反轉(zhuǎn) 255
19.7 挑戰(zhàn)練習(xí):應(yīng)用函數(shù)式編程 256
19.8 挑戰(zhàn)練習(xí):滑窗算法 257
第 20章 Kotlin與Java互操作 258
20.1 與Java類互操作 258
20.2 互操作性與可空性 259
20.3 類型映射 262
20.4 getter和setter方法與互操作性 263
20.5 類之外 265
20.6 異常與互操作性 272
20.7 Java中的函數(shù)類型 275
第 21章 用Kotlin開發(fā)首個Android應(yīng)用 277
21.1 Android Studio 277
21.1.1 Gradle配置 281
21.1.2 項目組織 283
21.2 定義UI 283
21.3 用模擬器運行應(yīng)用 286
21.4 生成角色 287
21.5 Activity類 288
21.6 實例化視圖 289
21.7 Kotlin Android擴展 291
21.8 設(shè)置單擊事件監(jiān)聽器 293
21.9 保存實例狀態(tài) 294
21.10 使用擴展重構(gòu)代碼 296
21.11 深入學(xué)習(xí):Android KTX與Anko庫 298
第 22章 Kotlin協(xié)程簡介 300
22.1 解析角色數(shù)據(jù) 300
22.2 獲取動態(tài)數(shù)據(jù) 302
22.3 Android主線程 305
22.4 啟用協(xié)程 305
22.5 使用async指定協(xié)程 305
22.6 launch與async/await 307
22.7 掛起函數(shù) 307
22.8 挑戰(zhàn)練習(xí):動態(tài)數(shù)據(jù) 308
22.9 挑戰(zhàn)練習(xí):最小力量值 308
第 23章 編后語 309
23.1 前方的路 309
23.2 插個廣告 309
23.3 致謝 309
附錄A 補充挑戰(zhàn)練習(xí) 310
術(shù)語表 316

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號