Kotlin編程權威指南

Kotlin編程權威指南

《Kotlin編程權威指南》是2019年8月人民郵電出版社出版的圖書,作者是[美]喬希·斯基恩、[美]戴維·格林哈爾希。

基本介紹

  • 中文名:Kotlin編程權威指南
  • 作者:[美]喬希·斯基恩、[美]戴維·格林哈爾希
  • 出版社:人民郵電出版社
  • 出版時間:2019年8月
  • 頁數:322 頁
  • 定價:99 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115515636
內容簡介,圖書目錄,

內容簡介

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

圖書目錄

第 1章 Kotlin套用開發初體驗 1
1.1 安裝IntelliJ IDEA 1
1.2 第 一個Kotlin項目 2
1.2.1 創建首個Kotlin檔案 5
1.2.2 運行Kotlin檔案 7
1.3 Kotlin REPL 8
1.4 深入學習:為什麼要用IntelliJ 10
1.5 深入學習:面向JVM 10
1.6 挑戰練習:使用REPL研究Kotlin中的算數運算符 11
第 2章 變數、常量和類型 12
2.1 數據類型 12
2.2 聲明變數 12
2.3 Kotlin的內置數據類型 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.1 if/else語句 24
3.1.1 添加更多條件 27
3.1.2 if/else嵌套語句 28
3.1.3 更優雅的條件語句 29
3.2 range 33
3.3 when表達式 34
3.4 string模板 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.8 Unit函式 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.4 it關鍵字 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.2 Kotlin的null類型 72
6.3 編譯時間與運行時間 73
6.4 null安全 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.7 null:真的一無是處嗎 85
6.8 深入學習:已檢查異常與未檢查異常 86
6.9 深入學習:可空性該如何保證 86
第7章 字元串 88
7.1 字元串截取 88
7.1.1 substring 88
7.1.2 split 90
7.2 字元串操作 92
7.3 字元串比較 93
7.4 深入學習:Unicode 95
7.5 深入學習:遍歷字元 95
7.6 挑戰練習:改進toDragonSpeak函式 96
第8章 數 97
8.1 數字類型 97
8.2 整數 98
8.3 小數數字 99
8.4 字元串轉數值類型 100
8.5 Int類型轉Double類型 101
8.6 Double類型格式化 102
8.7 Double類型轉換為Int類型 103
8.8 深入學習:位運算 104
8.9 挑戰練習:還剩多少酒 105
8.10 挑戰練習:解決負數餘額問題 105
8.11 挑戰練習:龍幣 105
第9章 標準庫函式 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 使用標準庫函式 110
第 10章 List與Set 112
10.1 List 112
10.1.1 獲取列表元素 113
10.1.2 更改列表內容 116
10.2 遍歷 119
10.3 將檔案數據讀取到列表 122
10.4 解構 124
10.5 Set 124
10.5.1 創建一個Set集合 124
10.5.2 向Set集合中添加元素 125
10.6 while循環 128
10.7 break表達式 129
10.8 集合轉換 129
10.9 深入學習:數組類型 130
10.10 深入學習:唯讀與不可變 131
10.11 挑戰練習:美化酒水單 132
10.12 挑戰練習:進一步美化酒水單 132
第 11章 Map 133
11.1 創建一個Map 133
11.2 讀取Map集合的值 135
11.3 向Map集合添加項 136
11.4 修改Map集合值 137
11.5 挑戰練習:守衛小客棧 140
第 12章 定義類 141
12.1 定義一個類 141
12.2 構造實例 141
12.3 類函式 142
12.4 可見性與封裝 143
12.5 類屬性 144
12.5.1 屬性getter與setter 146
12.5.2 屬性可見性 148
12.5.3 計算屬性 149
12.6 重構NyetHack 149
12.7 使用包 156
12.8 深入學習:細看var與val屬性 157
12.9 深入學習:防範競態條件 160
12.10 深入學習:私有包 161
第 13章 初始化 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
第 14章 繼承 178
14.1 定義Room類 178
14.2 創建子類 179
14.3 類型檢測 184
14.4 Kotlin類層次 186
14.4.1 類型轉換 187
14.4.2 智慧型類型轉換 188
14.5 深入學習:Any 189
第 15章 對象 190
15.1 object關鍵字 190
15.1.1 對象聲明 190
15.1.2 對象表達式 195
15.1.3 伴生對象 195
15.2 嵌套類 196
15.3 數據類 199
15.3.1 toString 200
15.3.2 equals 200
15.3.3 copy 200
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
第 16章 接口與抽象類 213
16.1 定義接口 213
16.2 實現接口 214
16.3 默認實現 216
16.4 抽象類 217
16.5 在NyetHack 遊戲裡打怪 219
第 17章 泛型 223
17.1 定義泛型類 223
17.2 泛型函式 224
17.3 多泛型參數 225
17.4 泛型約束 227
17.5 vararg關鍵字與get函式 228
17.6 in與out 230
17.7 深入學習:reified關鍵字 234
第 18章 擴展 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.9 Kotlin標準庫中的擴展 245
18.10 深入學習:帶接收者的函式字面量 246
18.11 挑戰練習:toDragonSpeak擴展 247
18.12 挑戰練習:frame擴展 247
第 19章 函式式編程基礎 248
19.1 函式類別 248
19.1.1 變換 248

相關詞條

熱門詞條

聯絡我們