Kotlin極簡教程

Kotlin極簡教程

《Kotlin極簡教程》是2017年9月出版的圖書,作者是陳光劍。

基本介紹

  • 中文名:Kotlin極簡教程
  • 別名:零基礎 Kotlin 入門實戰
  • 作者:陳光劍 
  • 出版時間:2017年09月
  • 出版社:機械工業出版社
  • 頁數:494 頁
  • ISBN:9787111579939
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,作者簡介,目錄,

內容簡介

本書是不可多得的優秀圖書,內容翔實,描述簡潔,作者對編程語言有深刻的理解,融入了自己多年的開發經驗……Kotlin非常新,而且發展也非常快,是一門非常有前景的開發語言,我希望Android和Java程式設計師都能停下來閱讀這本Kotlin的圖書,以系統地了解這項技術。
本書從Kotlin的HelloWorld開始,生動講解Kotlin的基礎知識和實戰案例,分為兩大部分:“基礎知識”部分包括語言基礎、基本數據類型與類型變數、集合類、泛型、面向對象編程、函式式編程、協程等;“實戰”部分包括Kotlin與Java互操作、使用Kotlin集成Spring Boot開發WEB服務端、使用Kotlin集成Gradle開發、使用Kotlin和Anko的Android開發、使用Kotlin DSL、Kotlin檔案IO操作與多執行緒、使用Kotlin Native。本書包含了大量精選示例代碼和套用案例,為初學者提供了實用指南,也幫助熟練的Java開發者快速切換到Kotlin。

作者簡介

陳光劍 資深開發人員,目前就職於阿里巴巴集團,參與過多種平台工具的開發,具有豐富的平台開發經驗,操練過Java、Android、Scala、Groovy等語言進行領域建模、架構設計、工具開發,在工作中積累了大量經驗,善於總結,樂於分享,發布過大量技術文章。

目錄

序 言
前 言
第一部分 Kotlin語言基礎
第1章 Kotlin簡介 2
1.1 Kotlin簡史 2
1.1.1 Kotlin概述 3
1.1.2 Kotlin元年:2016 3
1.2 快速學習工具 4
1.2.1 雲端IDE 4
1.2.2 本地命令行環境搭建 5
1.2.3 使用IntelliJ IDEA 9
1.2.4 使用Eclipse 13
1.2.5 使用Gradle構建Kotlin項目 17
1.2.6 程式語言學習小結 18
1.3 本章小結 20
第2章 快速開始HelloWorld 21
2.1 命令行版HelloWorld 21
2.2 應用程式版HelloWorld 21
2.3 Web RESTful HelloWorld 24
2.4 Android版的HelloWorld 34
2.5 JavaScript版HelloWorld 39
2.6 本章小結 49
第3章 Kotlin語言基礎 50
3.1 包 50
3.2 聲明變數和值 56
3.3 變數類型推斷 57
3.3.1 省去變數類型 57
3.3.2 使用is運算符進行類型檢測 59
3.4 字元串與其模板表達式 59
3.5 流程控制語句 60
3.5.1 if表達式 60
3.5.2 when表達式 62
3.5.3 for循環 64
3.5.4 while循環 64
3.5.5 break和continue 65
3.5.6 return 66
3.5.7 標籤 69
3.5.8 throw表達式 71
3.6 代碼注釋 72
3.7 語法與標識符 73
3.7.1 修飾符 73
3.7.2 關鍵字(保留字) 75
3.7.3 操作符和操作符的重載 81
3.7.4 操作符優先權 82
3.7.5 一元操作符 83
3.7.6 二元操作符 85
3.8 擴展函式和擴展屬性 90
3.8.1 擴展函式 90
3.8.2 擴展屬性 93
3.9 空指針安全 93
3.10 標準庫API簡介 96
3.11 本章小結 97
第4章 基本數據類型與類型系統 98
4.1 什麼是類型 98
4.2 編譯時類型與運行時類型 100
4.2.1 弱類型與強類型 100
4.2.2 靜態類型與動態類型 101
4.2.3 顯式類型與隱式類型 101
4.3 根類型Any 101
4.4 基本類型 102
4.4.1 數字類型 104
4.4.2 字元類型與轉義符 109
4.4.3 布爾類型 111
4.4.4 字元串類型 112
4.4.5 數組類型 117
4.5 可空類型 120
4.5.1 Kotlin中的null 120
4.5.2 可空類型String?與安全調用?. 122
4.5.3 可空性的實現原理 124
4.5.4 可空類型層次體系 126
4.6 kotlin.Unit類型 127
4.7 kotlin.Nothing類型 128
4.8 類型檢測與類型轉換 131
4.8.1 is與!is運算符 131
4.8.2 as運算符 133
4.9 本章小結 134
第二部分 編程進階
第5章 集合類 136
5.1 集合類的基本概念 136
5.1.1 集合類是一種數據結構 137
5.1.2 集合類是ADT 137
5.1.3 連續存儲和離散存儲 138
5.2 Kotlin集合類簡介 138
5.3 List 139
5.3.1 創建不可變List 140
5.3.2 創建可變集合MutableList 142
5.3.3 遍歷List元素 143
5.3.4 List元素操作函式 146
5.3.5 List集合類的基本運算函式 151
5.3.6 過濾操作函式 159
5.3.7 映射操作函式 166
5.3.8 分組操作函式 169
5.3.9 排序操作符 170
5.3.10 生產操作符 171
5.4 Set 174
5.4.1 空集 174
5.4.2 創建Set 176
5.4.3 使用Java中的Set類 177
5.4.4 Set元素的加減操作plus minus 179
5.5 Map 179
5.5.1 創建Map 180
5.5.2 訪問Map的元素 184
5.5.3 Map操作符函式 186
5.6 本章小結 192
第6章 泛型 193
6.1 泛型簡介 193
6.1.1 泛型與多態 193
6.1.2 為何引進泛型 194
6.1.3 Java與Kotlin中的泛型 195
6.2 型變 197
6.2.1 Java的類型通配符 197
6.2.2 泛型和數組的型變 201
6.3 Kotlin中的泛型 205
6.3.1 out T與in T 205
6.3.2 聲明處型變 206
6.3.3 類型投影 206
6.4 泛型類 207
6.5 泛型函式 208
6.6 本章小結 208
第7章 面向對象編程 209
7.1 面向對象編程思想 209
7.1.1 一切皆是映射 209
7.1.2 二進制01與易經陰陽 211
7.1.3 從面向過程到面向對象 212
7.2 類與構造函式 215
7.2.1 聲明類 216
7.2.2 構造函式 216
7.2.3 類的屬性 218
7.2.4 函式(方法) 219
7.3 抽象類 219
7.3.1 抽象類的定義 219
7.3.2 抽象函式 220
7.3.3 抽象屬性和抽象類 221
7.4 接口 223
7.4.1 接口定義 223
7.4.2 實現接口 224
7.4.3 覆蓋衝突 225
7.4.4 接口中的屬性 225
7.5 抽象類和接口的差異 226
7.6 繼承 227
7.6.1 open類 227
7.6.2 多重繼承 228
7.7 枚舉類 230
7.7.1 枚舉類基本用法 231
7.7.2 初始化枚舉值 231
7.7.3 使用枚舉常量 232
7.8 註解類 233
7.8.1 聲明註解 233
7.8.2 使用註解 234
7.9 單例模式與伴生對象 234
7.9.1 單例模式 234
7.9.2 object對象 235
7.9.3 嵌套object對象 236
7.9.4 匿名object 238
7.9.5 伴生對象 239
7.10 密封類 242
7.11 數據類 243
7.11.1 構造函式中的val/var 243
7.11.2 領域實體類 245
7.11.3 數據類的概念 245
7.11.4 數據類的限制 246
7.11.5 數據類的解構 248
7.11.6 標準數據類Pair和Triple 248
7.12 嵌套類 249
7.12.1 嵌套類:類中的類 249
7.12.2 內部類 250
7.12.3 匿名內部類 250
7.13 委託 252
7.13.1 代理模式 252
7.13.2 類的委託 253
7.13.3 委託屬性 255
7.14 本章小結 260
第8章 函式式編程 261
8.1 函式式編程概述 261
8.1.1 函式式編程與面向對象編程 262
8.1.2 函式式編程基本特性 265
8.1.3 函式式編程核心思想 266
8.2 在Kotlin中使用函式式編程 284
8.2.1 Kotlin中的函式 284
8.2.2 擴展函式 286
8.2.3 中綴函式 286
8.2.4 函式參數 287
8.2.5 函式返回類型 289
8.2.6 單表達式函式 289
8.2.7 函式作用域 289
8.2.8 泛型函式 290
8.2.9 高階函式 290
8.2.10 匿名函式 291
8.2.11 Lambda表達式 291
8.2.12 it:單個參數的隱式名稱 292
8.2.13 閉包 292
8.2.14 帶接收者的函式字面值 293
8.2.15 具體化的類型參數 293
8.2.16 尾遞歸tailrec 294
8.3 本章小結 295
第9章 輕量級執行緒:協程 296
9.1 協程的基本概念 296
9.2 協程的基本操作 297
9.2.1 搭建項目 297
9.2.2 簡單協程示例 298
9.2.3 使用launch函式啟動協程 299
9.2.4 CommonPool對象 299
9.2.5 掛起函式 301
9.2.6 runBlocking函式 302
9.2.7 等待一個協程任務執行完畢 303
9.2.8 取消協程 306
9.2.9 協程取消失效 307
9.2.10 計算代碼協程的取消方式 308
9.2.11 在f?inally中的協程代碼 310
9.2.12 協程中不被取消的代碼塊 312
9.2.13 設定協程逾時時間 313
9.3 掛起函式 314
9.3.1 按默認順序執行 314
9.3.2 使用異步並發執行 315
9.4 協程上下文與調度器 316
9.4.1 調度和執行緒 316
9.4.2 父子協程 318
9.5 通道與管道 319
9.5.1 通道vs阻塞佇列 319
9.5.2 關閉通道和疊代遍曆元素 320
9.5.3 生產者-消費者模式 321
9.5.4 使用管道生產無限序列 322
9.5.5 管道與無窮質數序列 323
9.5.6 通道緩衝區 324
9.5.7 構建無窮惰性序列 324
9.6 協程與執行緒 325
9.6.1 輕量級的協程 325
9.6.2 協程vs守護執行緒 326
9.6.3 區別 327
9.6.4 協程的好處 328
9.6.5 Kotlin協程的內部機制 328
9.7 本章小結 329
第10章 Kotlin與Java互操作 330
10.1 在Kotlin中調用Java 330
10.1.1 調用Okhttp庫示例 331
10.1.2 使用Java的集合類 332
10.1.3 調用Java中的Getter和Setter 333
10.1.4 調用Java中返回void的方法 334
10.1.5 調用來自Java中的null 335
10.1.6 使用Java的泛型 336
10.1.7 數組的互操作 337
10.1.8 可變參數的互操作 337
10.1.9 檢查Java中的異常 337
10.1.10 調用Java的Object方法 338
10.1.11 訪問Java靜態成員 340
10.1.12 使用Java的反射 340
10.1.13 SAM轉換 341
10.2 在Java中調用Kotlin 342
10.2.1 訪問Kotlin屬性 342
10.2.2 調用Kotlin的包級函式 344
10.2.3 調用Kotlin中的實例欄位 347
10.2.4 調用Kotlin中的靜態欄位 348
10.2.5 調用Kotlin中的靜態方法 349
10.2.6 Kotlin與Java的可見性 350
10.2.7 生成默認參數函式的重載 352
10.2.8 顯式聲明Kotlin中的異常 353
10.2.9 關鍵字衝突的互操作 355
10.2.10 Nothing類型 355
10.3 類型映射 356
10.4 Kotlin與Java的簡單實例對比 357
10.5 本章小結 364
第三部分 綜合實戰
第11章 使用Kotlin集成Spring Boot開發Web服務端 366
11.1 Spring Boot簡介 366
11.2 系統架構技術棧 367
11.3 準備工作 367
11.3.1 創建工程 367
11.3.2 Gradle配置檔案說明 369
11.4 資料庫層開發 370
11.4.1 Endpoint監控接口 373
11.4.2 實體類 375
11.4.3 數據訪問層代碼 377
11.5 後端邏輯開發 379
11.5.1 控制器邏輯層 379
11.5.2 啟動初始化CommandLine-Runner 380
11.5.3 套用啟動類 380
11.5.4 Model數據綁定 382
11.5.5 模板引擎視圖頁面 383
11.5.6 運行測試 383
11.6 前端後端集成 384
11.6.1 引入前端組件 384
11.6.2 實現寫文章模組 386
11.6.3 加上導航欄 388
11.6.4 抽取公共模板檔案 389
11.6.5 寫文章的控制器層接口 390
11.6.6 前端Ajax請求 390
11.6.7 文章詳情頁 391
11.6.8 添加Markdown支持 393
11.6.9 文章列表分頁搜尋 395
11.7 Spring 5.0對Kotlin的支持 397
11.8 本章小結 399
第12章 使用Kotlin集成Gradle開發 400
12.1 使用Gradle構建Kotlin工程 400
12.2 使用Kotlin編寫Gradle構建配置檔案 405
12.3 本章小結 407
第13章 使用Kotlin和Anko的Android開發 408
13.1 什麼是Anko 408
13.2 快速入門實例 409
13.2.1 功能介紹 410
13.2.2 使用Android Studio新建項目 411
13.2.3 設計UI界面主題顏色 415
13.2.4 核心依賴配置 417
13.2.5 代碼編寫 421
13.2.6 運行測試 435
13.3 本章小結 437
第14章 使用 Kotlin DSL 438
14.1 什麼是DSL 439
14.2 Kotlin的DSL特性支持 441
14.3 使用kotlinx.html DSL寫前端代碼 442
14.4 實現一個極簡的HTTP DSL 447
14.5 本章小結 454
第15章 Kotlin 檔案IO操作與多執行緒 455
15.1 Kotlin IO基本操作 455
15.1.1 終端IO操作 455
15.1.2 讀檔案 456
15.1.3 寫檔案 457
15.1.4 遍歷檔案樹 458
15.1.5 網路IO操作 459
15.1.6 kotlin.io標準庫 460
15.1.7 執行Shell命令行 461
15.2 正則表達式 463
15.2.1 構造Regex表達式 463
15.2.2 Regex類中的函式 463
15.2.3 使用Java正則表達式類 465
15.3 Kotlin的多執行緒 466
15.3.1 創建執行緒 466
15.3.2 同步方法和塊 467
15.3.3 可變欄位 468
15.4 本章小結 469
第16章 使用 Kotlin Native 470
16.1 Kotlin Native簡介 470
16.2 快速開始Hello World 471
16.3 Kotlin Native與C語言互操作 477
16.4 Kotlin Native編譯器konan簡介 486
16.5 本章小結 494

相關詞條

熱門詞條

聯絡我們