kotlin編程之美

kotlin編程之美

《kotlin編程之美》是2020年機械工業出版社出版的圖書,作者是皮埃爾-伊夫斯·索蒙特(Pierre-Yves Saumont)。本書的內容包括編程功能、處理可選數據、安全處理錯誤和異常以及處理和共享狀態突變等。

基本介紹

  • 中文名:kotlin編程之美
  • 作者:[法] 皮埃爾-伊夫斯·索蒙特(Pierre-Yves Saumont)
  • 出版社:機械工業出版社
  • ISBN:9787111650409 
內容簡介,圖書目錄,

內容簡介

作為Java開發人員,維護糟糕的遺留代碼、解釋晦澀的注釋、反覆編寫相同的樣板文促雅己潤件可能會讓編程失去樂阿棗道趣。《Kotlin編程之美》講述用Kotlin編寫易於理解、易於維護、安全的程式的方法和技巧。在本書中,經驗豐富的工程師皮埃爾-伊夫斯?索蒙特將以全新的、以函式式編程的視角來處理常見的編程挑戰,並用示例深入講解如何正確處理翻歡立錯誤和數據、酷刪夜訂如何管理狀態以及如何利用惰性。《Kotlin編程之美》的內容包括編程功能、處理可選數據、安全處理錯誤和異常以及處理和共享狀態突變等。《Kotlin編程之美》的讀者對象為中級Java或Kotlin開發人員、高等院校計算機相關專業學生以及對安全編程感興趣的工程技術人員等。

圖書目錄

目 錄
封 面
譯者序
致 謝
前 言
關於本書
關於讀者
關於封面插圖
第1章 讓程式更安全
1.1 編程陷阱
1.1.1 安全的處理作用
1.1.2 用引用透明性使程式更安全
1.2 安全編程的好處
1.2.1 使用替換模型對程式進行推理
1.2.2 套用安全原則的簡單示例
1.2.3 將抽象推向極限
1.3 本章小結
第2章 Kotlin中的函式式編程:概述
2.1 Kotlin中的欄位和變數
2.1.1 省略類型以簡化
2.1.2 使用可變欄位
2.1.3 理解延遲初始化
2.2 Kotlin中的類和接口
2.2.1 使代碼更加簡潔
2.2.2 實現接口或擴展類
2.2.3 實例化一個類
2.2.4 重載屬性構造函式
2.2.5 創建equals和hashCode方法
2.2.6 解構數據對象
2.2.7 在Kotlin中實現靜態成員
2.2.8 使用單例模式
2.2.9 防止工具類實例化
2.3 Kotlin沒有原語
2.4 Kotlin的兩種集合類型
2.5 Kotlin的包
2.6 Kotlin的可見性
2.7 Kotlin中的函式
2.7.1 函式聲明
2.7.2 使用局部函式
2.7.3 覆蓋函式
2.7.4 使用擴展函式
2.7.5 使用lamdba表達式
2.8 Kotlin中的null
2.8.1 處理可空類型
2.8.2 Elvis和默認值
2.9 程式流程和控制結構
2.9.1 使用條件選擇器
2.9.2 使用多條件選擇器
2.9.3 使用循環
2.10 Kotlin的未檢查異常
2.11 自動關閉資源
2.12 Kotlin的智慧型轉換
2.13 相等性VS一致性
2.14 字元串插值
2.15 多行字元串
2.16 型變:參數化類型和子類型
2.16.1 為什麼型變是一個潛在的市甩察問題
2.16.2 何時使用協變以及何時使用逆變
2.16.3 聲明端型變與使用端型變
2.17 本章小結
第3章 用腳少函式編程
3.1 函式是什麼?
3.1.1 理解兩個函式集之間的關係
3.1.2 Kotlin中反函式概述
3.1.3 處理偏函式
3.1.4 理解函式複合
3.1.5 使用多參數函式
3.1.6 柯里化函式
3.1.7 使用偏套用函式
3.1.8 沒有作用的函式
3.2 Kotlin中的函式
3.2.1 將函式理解為數據
3.2.2 將數據理解為函式
3.2.3 使用對象構造函式作為函式
3.2.4 使用Kotlin的fun函式
3.2.5 使用對象表示法和函式表示法
3.2.6 使用值函式
3.2.7 使用函式引用
3.2.8 複合函式
3.2.9 重用函式
3.3 高級函式特徵
3.3.1 多參數函遷龍享數如何?
3.3.2 套用柯里化函式
3.3.3 實現高階函式
3.3.4 創建多態高階函式
3.3.5 使用匿名函式
3.3.6 定義局部函式
3.3.7 實現閉包
3.3.8 套用偏函式和自動柯里化
3.3.9 切換偏套用函式的參數
3.3.10 聲明單位函式
3.3.11 使用正確的類型
3.4 本章小結
第4章 遞歸、尾遞歸和記憶化
4.1 共遞歸與遞歸
4.1.1 實現共遞歸
4.1.2 實現遞歸
4.1.3 區分遞歸函式和共遞歸函式
4.1.4 選擇遞歸或尾遞歸
4.2 尾調用消除
4.2.1 使用尾調用消除
4.2.2 從循環切換到共遞歸
4.2.3 使用遞歸值函式
4.3 遞歸函式和列表
4.3.1 使用雙遞歸函式
4.3.2 對列表抽象遞歸
4.3.3 反轉列表
4.3.4 構建共遞歸列表
4.3.5 嚴格的後果
4.4 記憶化
4.4.1 在基於循環的編程中使用記憶化
4.4.2 在遞歸函式中使用記憶化
4.4.3 使用隱式記憶化
4.4.4 使用自動記憶化
4.4.5 實現多參數函式的記憶化
4.5 記憶函式純嗎?
4.6 本章小結
第5章 用列表處理數據
5.1 如何對數據集合進行分類
5.2 不同類型的列表
5.3 相對期望列表性能
5.3.1 用時間來交換記憶體空間和複雜性
5.3.2 避免就地突變
5.4 KOTLIN有哪些可用列表?
5.4.1 使用持久數據結構
5.4.2 實現不可變的、持久的單鍊表
5.5 列表操作中的數據共享
5.6 更多列表操作
5.6.1 標註的益處
5.6.2 連線列表
5.6.3 從列表末尾刪除
5.6.4 使用遞歸對具有高階函式(HOFs)的列表進行摺疊
5.6.5 使用型變
5.6.6 創建foldRight的一個棧安全遞歸版本
5.6.7 映射和過濾列表
5.7 本章小結
第6章 處理可選數據
6.1 空指針問題
6.2 Kotlin如何處理空引用
6.3 空引用的替代方法
6.4 使用OPTION類型
6.4.1 從一個Option中獲取值
6.4.2 將函式套用於可選值
6.4.3 處理Option組合
6.4.4 Option用例
6.4.5 其他組合選項的方法
6.4.6 用Option組合List
6.4.7 何時使用Option
6.5 本章小結
第7章 處理錯誤和異常
7.1 數據缺失的問題
7.2 Either類型
7.3 Result類型
7.4 Result模式
7.5 高級Result處理
7.6 映射Failture
7.7 添加工廠函式
7.8 套用作用
7.9 高級結果組合
7.10 本章小結
第8章 高級列表處理
8.1 長度問題
8.2 性能問題
8.3 記憶化的好處
8.3.1 處理記憶化的缺點
8.3.2 評估性能改進
8.4 List和Result組成
8.4.1 處理List返回Result
8.4.2 從List轉換為Result
8.5 常見列表抽象
8.5.1 壓縮和解壓縮列表
8.5.2 通過索引訪問元素
8.5.3 列表分裂
8.5.4 搜尋子列表
8.5.5 處理列表的其它函式
8.6 列表的自動並行處理
8.6.1 並不是所有的計算都可以並行化
8.6.2 將列表分解為子列表
8.6.3 並行處理子列表
8.7 本章小結
第9章 與惰性配合
9.1 嚴格VS惰性
9.2 Kotlin和嚴格
9.3 Kotlin和惰性
9.4 懶惰的實現
9.4.1 組合惰性值
9.4.2 提升函式
9.4.3 映射和flatMapping惰性
9.4.4 用列表組成惰性
9.4.5 處理異
2.9.1 使用條件選擇器
2.9.2 使用多條件選擇器
2.9.3 使用循環
2.10 Kotlin的未檢查異常
2.11 自動關閉資源
2.12 Kotlin的智慧型轉換
2.13 相等性VS一致性
2.14 字元串插值
2.15 多行字元串
2.16 型變:參數化類型和子類型
2.16.1 為什麼型變是一個潛在的問題
2.16.2 何時使用協變以及何時使用逆變
2.16.3 聲明端型變與使用端型變
2.17 本章小結
第3章 用函式編程
3.1 函式是什麼?
3.1.1 理解兩個函式集之間的關係
3.1.2 Kotlin中反函式概述
3.1.3 處理偏函式
3.1.4 理解函式複合
3.1.5 使用多參數函式
3.1.6 柯里化函式
3.1.7 使用偏套用函式
3.1.8 沒有作用的函式
3.2 Kotlin中的函式
3.2.1 將函式理解為數據
3.2.2 將數據理解為函式
3.2.3 使用對象構造函式作為函式
3.2.4 使用Kotlin的fun函式
3.2.5 使用對象表示法和函式表示法
3.2.6 使用值函式
3.2.7 使用函式引用
3.2.8 複合函式
3.2.9 重用函式
3.3 高級函式特徵
3.3.1 多參數函式如何?
3.3.2 套用柯里化函式
3.3.3 實現高階函式
3.3.4 創建多態高階函式
3.3.5 使用匿名函式
3.3.6 定義局部函式
3.3.7 實現閉包
3.3.8 套用偏函式和自動柯里化
3.3.9 切換偏套用函式的參數
3.3.10 聲明單位函式
3.3.11 使用正確的類型
3.4 本章小結
第4章 遞歸、尾遞歸和記憶化
4.1 共遞歸與遞歸
4.1.1 實現共遞歸
4.1.2 實現遞歸
4.1.3 區分遞歸函式和共遞歸函式
4.1.4 選擇遞歸或尾遞歸
4.2 尾調用消除
4.2.1 使用尾調用消除
4.2.2 從循環切換到共遞歸
4.2.3 使用遞歸值函式
4.3 遞歸函式和列表
4.3.1 使用雙遞歸函式
4.3.2 對列表抽象遞歸
4.3.3 反轉列表
4.3.4 構建共遞歸列表
4.3.5 嚴格的後果
4.4 記憶化
4.4.1 在基於循環的編程中使用記憶化
4.4.2 在遞歸函式中使用記憶化
4.4.3 使用隱式記憶化
4.4.4 使用自動記憶化
4.4.5 實現多參數函式的記憶化
4.5 記憶函式純嗎?
4.6 本章小結
第5章 用列表處理數據
5.1 如何對數據集合進行分類
5.2 不同類型的列表
5.3 相對期望列表性能
5.3.1 用時間來交換記憶體空間和複雜性
5.3.2 避免就地突變
5.4 KOTLIN有哪些可用列表?
5.4.1 使用持久數據結構
5.4.2 實現不可變的、持久的單鍊表
5.5 列表操作中的數據共享
5.6 更多列表操作
5.6.1 標註的益處
5.6.2 連線列表
5.6.3 從列表末尾刪除
5.6.4 使用遞歸對具有高階函式(HOFs)的列表進行摺疊
5.6.5 使用型變
5.6.6 創建foldRight的一個棧安全遞歸版本
5.6.7 映射和過濾列表
5.7 本章小結
第6章 處理可選數據
6.1 空指針問題
6.2 Kotlin如何處理空引用
6.3 空引用的替代方法
6.4 使用OPTION類型
6.4.1 從一個Option中獲取值
6.4.2 將函式套用於可選值
6.4.3 處理Option組合
6.4.4 Option用例
6.4.5 其他組合選項的方法
6.4.6 用Option組合List
6.4.7 何時使用Option
6.5 本章小結
第7章 處理錯誤和異常
7.1 數據缺失的問題
7.2 Either類型
7.3 Result類型
7.4 Result模式
7.5 高級Result處理
7.6 映射Failture
7.7 添加工廠函式
7.8 套用作用
7.9 高級結果組合
7.10 本章小結
第8章 高級列表處理
8.1 長度問題
8.2 性能問題
8.3 記憶化的好處
8.3.1 處理記憶化的缺點
8.3.2 評估性能改進
8.4 List和Result組成
8.4.1 處理List返回Result
8.4.2 從List轉換為Result
8.5 常見列表抽象
8.5.1 壓縮和解壓縮列表
8.5.2 通過索引訪問元素
8.5.3 列表分裂
8.5.4 搜尋子列表
8.5.5 處理列表的其它函式
8.6 列表的自動並行處理
8.6.1 並不是所有的計算都可以並行化
8.6.2 將列表分解為子列表
8.6.3 並行處理子列表
8.7 本章小結
第9章 與惰性配合
9.1 嚴格VS惰性
9.2 Kotlin和嚴格
9.3 Kotlin和惰性
9.4 懶惰的實現
9.4.1 組合惰性值
9.4.2 提升函式
9.4.3 映射和flatMapping惰性
9.4.4 用列表組成惰性
9.4.5 處理異

相關詞條

熱門詞條

聯絡我們