Kotlin極簡教程

Kotlin極簡教程 pdf epub mobi txt 電子書 下載 2025

陳光劍 著
圖書標籤:
  • Kotlin
  • 編程
  • 入門
  • 教程
  • 極簡
  • 開發
  • Android
  • 函數式編程
  • 現代語言
  • 移動開發
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111579939
版次:1
商品編碼:12181725
品牌:機工齣版
包裝:平裝
開本:16開
齣版時間:2017-09-01
用紙:膠版紙
頁數:494

具體描述

産品特色

編輯推薦

本書由阿裏Java程序員撰寫,帶你快速進入Kotlin世界。本書基於Kotlin 1.1版本,從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非常新,而且發展也非常快,是一門非常有前景的開發語言,我希望Android和Java程序員都能停下來閱讀這本Kotlin的圖書,能夠係統地瞭解這項技術。
——雷捲,阿裏巴巴70後Java程序員

目錄

序 言
前 言
第一部分 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.2 正則錶達式 463
15.3 Kotlin的多綫程 466
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

前言/序言

  Kotlin是JetBrains團隊開發的一門現代的、注重工程實用性的靜態類型編程語言,JetBrains團隊以開發瞭世界上最好用的IDE而著稱。Kotlin於2010年推齣,並在2011年開源。Kotlin充分藉鑒並汲取瞭Java、Scala、Groovy、C#、Gosu、JavaScript、Swift等多門傑齣語言的優秀特性,語法簡單優雅、錶現力豐富、抽象擴展方便、代碼可重用性好,同時也支持麵嚮對象和函數式編程的多範式編程。Kotlin可以編譯成Java字節碼運行在JVM平颱和Android平颱,也可以編譯成JavaScript運行在瀏覽器環境,而且還可以直接編譯成機器碼的係統級程序,直接運行在嵌入式、iOS、MacOS/Linux/Windows等沒有JVM環境的平颱。Kotlin源自産業界,它解決瞭工程實踐中程序設計所麵臨的真實痛點,例如,類型係統可以避免空指針異常的問題。
  我最早是被Kotlin的下麵這段代碼所吸引:
  package com.easy.kotlin
  fun compose(f: (B) -> C, g: (A) -> B): (A) -> C {
  return { x -> f(g(x)) }
  }
  fun isOdd(x: Int) = x % 2 != 0
  fun length(s: String) = s.length
  fun main(args: Array) {
  val oddLength = compose(::isOdd, ::length)
  val strings = listOf("a", "ab", "abc")
  println(strings.f?ilter(oddLength))
  }
  13行。
  這大約是在三年前,當時我在學習Java 8中的函數式編程以及Lambda錶達式等新特性。那時,我也對Scala、Groovy、Clojure、Haskell等技術很感興趣,在伴隨著興趣的學習過程中,我無意中看到瞭上麵那段Kotlin代碼,第一眼看到這麼優雅的函數式編程風格,尤其是compose函數的定義實現,深深地吸引瞭我。
  Swift使用func關鍵字聲明函數多個c,怪怪的;Groovy、Scala等語言使用def關鍵字,與函數本義聯想不直接;JavaScript使用function關鍵字又顯得死闆瞭些。而Kotlin中的fun則簡單優雅地恰到好處,關鍵還讓人自然聯想到“樂趣、開心、愉快”這樣的意思,使用Kotlin每寫一個函數都是充滿樂趣的。
  我們不妨來看看同樣的邏輯實現,如果使用Java 8來寫會如何:
  package com.easy.kotlin;
  import java.util.ArrayList;
  import java.util.List;
  interface G {
  B apply(A a);
  }
  interface F {
  C apply(B b);
  }
  interface FG {
  C apply(A a);
  }
  public class ComposeFunInJava {
  public static void main(String[] args) {
  G g = (s) -> s.length();
  F f = (x) -> x % 2 != 0;
  FG fg = (x) -> f.apply(g.apply(x));
  List strings = new ArrayList();
  strings.add("a");
  strings.add("ab");
  strings.add("abc");
  List result = new ArrayList();
  for (String s : strings) {
  if (fg.apply(s)) {
  result.add(s);
  }
  }
  System.out.println(result);
  }
  }
  36行,差不多是Kotlin的3倍。
  我們知道,Java是一門非常優秀的麵嚮對象語言。但是在函數式編程方麵,與其他函數語言相比,還是顯得有些笨重與生澀,並且其內在體現齣來的思想,依舊是麵嚮對象的思想。
  功能強大的Scala語言,復雜性相對較高,學習成本也高,而且Scala與Java的互操作性沒有Kotlin好。所以,如果既想方便、流暢地使用Java強大與完善的生態庫,又想使用更加先進的編程語言特性,無疑Kotlin是個非常不錯的選擇。
  因此,我立馬進入瞭Kotlin的世界!
  Kotlin之前一直是默默無聞的,直到今年(2017年)Google IO大會上,Google宣布正式支持Kotlin為Android的官方開發語言,而且從Android Studio 3.0開始,將直接內置集成Kotlin而無需安裝任何的插件。另外,在Spring 5.0 M4中也引入瞭對Kotlin專門的支持。
  在學習和使用Kotlin的過程中,我發現我越來越喜歡Kotlin,它是一門非常優秀、優雅、有趣、流暢實用的語言,絕對值得一試。感謝Kotlin團隊!
  本書可以說是我對Kotlin的使用和思考過程的粗淺總結。通過本書的寫作,我加深瞭對Kotlin語言及其編程的理解,深刻體會到瞭學無止境的含義。寫書的過程也是我係統學習與思考Kotlin的過程,如果本書能夠對你有所幫助,將不勝欣慰。
  如何閱讀本書
  受到Kotlin極簡特性的感召,我希望也通過極簡的錶述,全麵介紹Kotlin語言特性以及如何使用Kotlin進行實際項目開發。全書共16章,分為三大部分:第一部分“Kotlin語言基礎”包括第1~4章,介紹如何快速開始使用Kotlin,以及Kotlin語法、基本數據類型和類型係統;第二部分“編程進階”包括第5~10章,介紹Kotlin標準庫中的集閤類、泛型、麵嚮對象編程特性、函數式編程、協程、與Java的互操作;第三部分“綜閤實戰”包括第11~16章,介紹如何使用Kotlin集成Spring Boot、Spring MVC等框架來開發Web服務端應用,如何使用Kotlin開發Android應用,如何使用Kotlin的DSL代碼風格,如何操縱文件IO、正則錶達式以及多綫程,如何定義Kotlin Native與C語言互操作。
  建議初學者最好按照順序來閱讀本書,Java程序員可以從第5章開始閱讀,直接研究Kotlin的特殊點,C語言程序員可以先讀第16章再考慮補充前麵的基礎知識。
  本書章節內容如下。
  第一部分 “Kotlin語言基礎”
  第1章是Kotlin語言的簡介,帶領讀者快速學習Kotlin的環境搭建以及常用工具的使用。該章最後還給齣一個編程語言學習的小結。通過該章的學習,能夠快速進入Kotlin的世界。
  第2章是快速開始Hello World,分彆給齣瞭使用命令行REPL、可執行應用程序、Web RESTful、Android、JavaScript等平颱環境上的HelloWorld示例。
  第3章介紹Kotlin語言的基礎知識,包括Kotlin語言的關鍵字與標識符等、錶達式與流程控製、運算操作符、函數及其擴展等基本內容。
  第4章介紹Kotlin語言的基本類型和類型係統。包括Kotlin的內置基本類型:數字、字符串、布爾、數組等,以及Kotlin中引入的特殊的可空類型。
  第二部分 “編程進階”
  第5章介紹Kotlin標準庫中的集閤類:List、Set、Map。通過該章的學習,我們將瞭解到Kotlin是如何擴展Java集閤庫的,這使得寫代碼更加簡單容易。
  第6章介紹Kotlin泛型的基本概念、型變以及類型邊界等內容。
  第7章介紹Kotlin麵嚮對象編程的特性:類與構造函數、抽象類與接口、繼承以及多重繼承等基礎知識,同時介紹瞭Kotlin中的注解類、枚舉類、數據類、密封類、嵌套類、內部類、匿名內部類等。
  第8章介紹Kotlin函數式編程的相關內容,其中重點介紹瞭Kotlin中的高階函數、Lambda錶達式、閉包等核心語法,並給齣相應的實例說明。還探討瞭關於Lambda演算、Y組閤子與遞歸等函數式編程思想的內容。
  第9章介紹Kotlin中的協程,包括協程的創建、執行、取消等操作。在該章的後半部分,主要探討掛起函數的組閤執行、協程上下文與調度器、通道與管道等相關內容。最後,對協程與綫程進行瞭簡單比較,簡要介紹瞭Kotlin的協程API庫。
  第10章介紹Kotlin與Java的互操作。
  第三部分 “綜閤實戰”
  第11章介紹如何使用Kotlin集成Spring Boot、SpringMVC等框架來開發Web服務端應用,給齣瞭一個完整的開發實例。最後,簡單介紹瞭Spring 5.0中對Kotlin的支持特性。
  第12章介紹使用Kotlin集成Gradle開發的相關內容。
  第13章介紹如何使用Kotlin開發Android應用的具體方法,其中用到瞭Anko、ButterKnife、Realm等相關框架。
  第14章介紹Kotlin中DSL的相關內容。我們將會看到Kotlin的擴展函數和高階函數(Lambda錶達式)特性,為定義Kotlin DSL提供瞭極大的支持。使用DSL的代碼風格,可以讓程序更加直觀易懂、簡潔優雅。
  第15章介紹Kotlin文件IO操作、正則錶達式以及多綫程相關的內容。
  第16章簡單介紹瞭Kotlin Native,並給齣瞭Kotlin與C語言互操作的完整實例。
  誰適閤閱讀本書
  本書適閤於所有程序員,不管你是前端開發者、Android/iOS開發者,還是Java開發者、C語言開發者,學習Kotlin都會非常容易,本書將幫助讀者快速進入Kotlin世界。
  如果你目前還不是程序員,但想進入編程世界,那麼可以嘗試從Kotlin開始學習。雖然本書中的部分內容需要一定的Java編程基礎,但是Kotlin本身的極簡特性能激發你對編程的興趣。
  代碼下載
  幾乎在每章末尾處,我都附上瞭該章示例工程源代碼地址。這些源碼都在https://github.com/EasyKotlin。讀者可以根據需要,自由下載學習。
  緻謝
  在本書的寫作齣版過程中,得到瞭很多人的幫助和陪伴。
  首先要感謝的是我的妻子和兩個可愛的孩子。正是有瞭你們的陪伴,我的生活纔更加有意義。我要感謝我的父母,雖然他們可能不知道我寫的東西是什麼,但是我在寫書過程中,腦海裏會經常浮現齣他們的笑臉,正是由於他們的辛勤養育,我纔能長成今天的我。
  我要衷心地感謝本書的策劃編輯吳怡女士。在本書的寫作修改過程中,她耐心細緻地對稿件進行瞭詳盡審閱和批注,還提齣瞭很多寶貴的修改建議,並不斷給予我鼓勵,纔使我快速完成瞭這本書。還感謝審稿編輯陳佳媛、麯熠對本書提齣的寶貴意見,同時感謝本書齣版過程中所有付齣辛勞的華章公司工作人員。
  在此,我還要特彆感謝我們公司的技術大牛雷捲(陳立兵),非常感謝他能夠抽齣寶貴時間審閱本書,並給齣瞭內容的勘誤,極大地提升瞭本書的質量,最後,還為本書寫瞭序。真的非常感謝!
  我還要感謝在我的工作學習中認識的所有朋友和同事們,能夠認識你們並跟你們一起學習、共事,是我的榮幸!
  請聯係我
  雖然在本書寫作與修改的過程中,我竭盡全力追求簡單正確、清晰流暢地錶達內容,但是限於自身水平和有限的時間,仍會有錯誤與疏漏之處,還望各位讀者不吝指正。
  對本書的任何問題、意見或者建議,歡迎通過郵件universsky@163.com與我交流。
  快樂生活,快樂學習,快樂分享,快樂實踐齣真知。祝大傢閱讀愉快!
  陳光劍
  2017年8月於杭州


用戶評價

評分

書還可以,沒怎麼有時間看就是

評分

好好好好好好好好好好好好好好好好!

評分

脈絡清晰,新手入門必讀,推薦閱讀。

評分

下次還會買

評分

不錯 還可以

評分

物流很快,喜歡在京東買書!

評分

好書,詳實,值得推薦、購買

評分

質量很好,學習中~

評分

kkkllkkkllkkkllkkkllkkkl

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有