KOTLIN編程權威指南
作 者: (美)喬希·斯基恩(Josh Skeen),(美)戴維·格林哈爾希(David Greenhalgh) 著 王明發 譯
定 價: 99
出?版?社: 人民郵電出版社
出版日期: 2019年08月01日
頁 數: 322
裝 幀: 平裝
ISBN: 9787115515636
●章Kotlin應用開發初體驗1
1.1安裝IntelliJ IDEA1
1.2個Kotlin項目2
1.2.1創建首個Kotlin文件5
1.2.2運行Kotlin文件7
1.3Kotlin REPL8
1.4深入學習:為什麼要用IntelliJ10
1.5深入學習:面向JVM10
1.6挑戰練習:使用REPL研究Kotlin中的算數運算符11
第2章變量、常量和類型12
2.1數據類型12
2.2聲明變量12
2.3Kotlin的內置數據類型14
2.4隻讀變量15
2.5類型推斷17
2.6編譯時常量19
2.7查看Kotlin字節碼19
2.8深入學習:Kotlin中的Java基本數據類型21
2.9挑戰練習:定義hasSteed變量22
2.10挑戰練習:獨角獸之角22
2.11挑戰練習:魔鏡23
第3章條件語句24
3.1if/else語句24
3.1.1添加更多條件27
3.1.2if/else嵌套語句28
3.1.3更優雅的條件語句29
3.2range33
3.3when表達式34
3.4string模板36
3.5挑戰練習:range研究37
3.6挑戰練習:優化玩家光環展示38
3.7挑戰練習:可配置的玩家狀況報告格式38
第4章函數40
4.1使用函數重構代碼40
4.2函數結構剖析42
4.2.1函數頭42
4.2.2函數體44
4.2.3函數作用域45
4.3調用函數46
4.4以函數重構代碼46
4.5自定義函數48
4.6默認值參49
4.7單表達式函數50
4.8Unit函數51
4.9具名函數參數52
4.10深入學習:Nothing類型53
4.11深入學習:Java中的文件級函數54
4.12深入學習:函數重載55
4.13深入學習:反引號中的函數名56
4.14挑戰練習:單表達式函數57
4.15挑戰練習:Fireball醉酒程度57
4.16挑戰練習:醉酒狀態報告57
第5章匿名函數與函數類型58
5.1匿名函數58
5.1.1函數類型59
5.1.2隱式返回60
5.1.3函數參數61
5.1.4it關鍵字61
5.1.5多個參數62
5.2類型推斷63
5.3定義參數是函數的函數63
5.4函數內聯65
5.5函數引用66
5.6函數類型作為返回類型68
5.7深入學習:Kotlin中的lambda就是閉包69
5.8深入學習:lambda與匿名內部類69
第6章null安全與異常71
6.1可空性71
6.2Kotlin的null類型72
6.3編譯時間與運行時間73
6.4null安全74
6.4.1選項一:安全調用操作符75
6.4.2選項二:使用!!.操作符76
6.4.3選項三:使用if判斷null值情況77
6.5異常79
6.5.1拋出異常80
6.5.2自定義異常81
6.5.3處理異常82
6.6先決條件函數83
6.7null:真的一無是處嗎85
6.8深入學習:已檢查異常與未檢查異常86
6.9深入學習:可空性該如何保證86
第7章字符串88
7.1字符串截取88
7.1.1substring88
7.1.2split90
7.2字符串操作92
7.3字符串比較93
7.4深入學習:Unicode95
7.5深入學習:遍歷字符95
7.6挑戰練習:改進toDragonSpeak函數96
第8章數97
8.1數字類型97
8.2整數98
8.3小數數字99
8.4字符串轉數值類型100
8.5Int類型轉Double類型101
8.6Double類型格式化102
8.7Double類型轉換為Int類型103
8.8深入學習:位運算104
8.9挑戰練習:還剩多少酒105
8.10挑戰練習:解決負數餘額問題105
8.11挑戰練習:龍幣105
第9章標準庫函數106
9.1apply106
9.2let107
9.3run108
9.4with109
9.5also109
9.6takeIf110
9.7使用標準庫函數110
0章List與Set112
10.1List112
10.1.1獲素113
10.1.2更改列表內容116
10.2遍歷119
10.3將文件數據讀取到列表122
10.4解構124
10.5Set124
10.5.1創建一個Set集合124
10.5.2向Set集合素125
10.6while循環128
10.7break表達式129
10.8集合轉換129
10.9深入學習:數組類型130
10.10深入學習:隻讀與不可變131
10.11挑戰練習:美化酒水單132
10.12挑戰練習:進一步美化酒水單132
1章Map133
11.1創建一個Map133
11.2讀取Map集合的值135
11.3向Map集合添加項136
11.4修改Map集合值137
11.5挑戰練習:守衛小客棧140
2章定義類141
12.1定義一個類141
12.2構造實例141
12.3類函數142
12.4可見性與封裝143
12.5類屬性144
12.5.1屬性getter與setter146
12.5.2屬性可見性148
12.5.3計算屬性149
12.6重構NyetHack149
12.7使用包156
12.8深入學習:細看var與val屬性157
12.9深入學習:防範競態條件160
12.10深入學習:私有包161
3章初始化162
13.1構造函數162
13.1.1主構造函數163
13.1.2在主構造函數裡定義屬性164
13.1.3次構造函數164
13.1.4默認參數166
13.1.5命名參數167
13.2初始化塊167
13.3屬性初始化168
13.4初始化順序170
13.5延遲初始化172
13.5.1延遲初始化172
13.5.2惰性初始化173
13.6深入學習:初始化陷阱174
13.7挑戰練習:聖劍之謎176
4章繼承178
14.1定義Room類178
14.2創建子類179
14.3類型檢測184
14.4Kotlin類層次186
14.4.1類型轉換187
14.4.2智能類型轉換188
14.5深入學習:Any189
5章對像190
15.1object關鍵字190
15.1.1對像聲明190
15.1.2對像表達式195
15.1.3伴生對像195
15.2嵌套類196
15.3數據類199
15.3.1toString200
15.3.2equals200
15.3.3copy200
15.3.4解構聲明201
15.4枚舉類202
15.5運算符重載203
15.6探索NyetHack遊戲世界205
15.7深入學習:定義結構比較208
15.8深入學習:代數數據類型210
15.9挑戰練習:“quit”命令211
15.10挑戰練習:魔力地圖212
15.11挑戰練習:搖鈴212
6章接口與抽像類213
16.1定義接口213
16.2實現接口214
16.3默認實現216
16.4抽像類217
16.5在NyetHack遊戲裡打怪219
7章泛型223
17.1定義泛型類223
17.2泛型函數224
17.3多泛型參數225
17.4泛型約束227
17.5vararg關鍵字與get函數228
17.6in與out230
17.7深入學習:reified關鍵字234
8章擴展236
18.1定義擴展函數236
18.2泛型擴展函數237
18.3擴展屬性239
18.4可空類擴展240
18.5擴展實現揭秘241
18.6用擴展封裝代碼241
18.7定義擴展文件243
18.8重命名擴展245
18.9Kotlin標準庫中的擴展245
18.10深入學習:帶接收者的函數字面量246
18.11挑戰練習:toDragonSpeak擴展247
18.12挑戰練習:frame擴展247
9章函數式編程基礎248
19.1函數類別248
19.1.1變換248
19.1.2過濾250
19.1.3合並251
19.2為什麼要學習函數式編程252
19.3序列253
19.4深入學習:評估代碼性能254
19.5深入學習:Arrow.kt255
19.6挑戰練習:Map值反轉255
19.7挑戰練習:應用函數式編程256
19.8挑戰練習:滑窗算法257
第20章Kotlin與Java互操作258
20.1與Java類互操作258
20.2互操作性與可空性259
20.3類型映射262
20.4getter和setter方法與互操作性263
20.5類之外265
20.6異常與互操作性272
20.7Java中的函數類型275
第21章用Kotlin開發首個Android應用277
21.1Android Studio277
21.1.1Gradle配置281
21.1.2項目組織283
21.2定義UI283
21.3用模擬器運行應用286
21.4生成角色287
21.5Activity類288
21.6實例化視圖289
21.7Kotlin Android擴展291
21.8設置單擊事件監聽器293
21.9保存實例狀態294
21.10使用擴展重構代碼296
21.11深入學習:Android KTX與Anko庫298
第22章Kotlin協程簡介300
22.1解析角色數據300
22.2獲取動態數據302
22.3Android主線程305
22.4啟用協程305
22.5使用async指定協程305
22.6launch與async/await307
22.7掛起函數307
22.8挑戰練習:動態數據308
22.9挑戰練習:最小力量值308
第23章編後語309
23.1前方的路309
23.2插個廣告309
23.3致謝309
附錄A補充挑戰練習310
術語表316
內容簡介
本書由知名技術培訓機構Big Nerd Ranch打造,秉承其一貫的簡潔、實用的寫作風格。Kotlin已成為Android官方支持的開發語言,但它具有平臺獨立性,亦可用於開發各種類型的原生應用。本書將帶領你通過搭建書中的示例項目來循序漸進地掌握Kotlin 的用法。首先使用IntelliJ IDEA搭建沙盒項目,幫助你熟悉開發環境。接下來介紹Kotlin編程知識,從較為基礎的變量、常量、類型等講起,逐漸深入到繼承、對像和抽像類。很後是函數式編程、Kotlin與Java互操作、構建Android應用等較復雜的內容。多章配有習題,幫你溫故知新,鞏固所學知識。
(美)喬希·斯基恩(Josh Skeen),(美)戴維·格林哈爾希(David Greenhalgh) 著 王明發 譯
喬希·斯基恩(Josh Skeen):軟件開發工程師,Big Nerd Ranch培訓師,在世界各地講授Java、Android應用開發以及Kotlin的課程。畢業於庫伯高等科學藝術聯盟學院。
戴維·格林哈爾希(David Greenhalgh):Android開發人員,Big Nerd Ranch培訓師。畢業於佐治亞理工學院。
王明發:畢業於華東理工大學。軟件開發及項目管理者,擁有十多年的軟件開發及項目管理經驗。除本書之外,另譯有《Android 編程非常不錯指南》一書。
"