Kotlin編程之美

Kotlin編程之美

作者: Pierre-Yves Saumont 關建峰延志偉耿光剛譯
出版社: 機械工業
出版在: 2020-05-01
ISBN-13: 9787111650409
ISBN-10: 7111650409
裝訂格式: 平裝
總頁數: 376 頁





內容描述


作為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處理異




相關書籍

Writing Apache Modules with Perl and C

作者 Doug MacEachern Lincoln Stein

2020-05-01

Java EE 6 Development with NetBeans 7

作者 David R. Heffelfinger

2020-05-01

OCM Java EE 6 Enterprise Architect Exam Guide (Exams 1Z0-807, 1Z0-865 & 1Z0-866), 3/e (Paperback)

作者 Paul R. Allen Joseph J. Bambara

2020-05-01