Kotlin主要特征
1. 目標平臺
服務器端、Android設備、Java運行的平臺
2. 靜態(tài)語言
所有表達式類型在編譯期已經(jīng)確定
Kotlin具有類型推導能力,可以從上下文推斷變量類型
3. 函數(shù)式編程
核心概念
- 頭等函數(shù)
把函數(shù)當作值,可以用變量保存,可以作為參數(shù)傳遞,或當作其他函數(shù)返回值 - 不可變性
使用不可變對象,保證創(chuàng)建后不能改變 - 無副作用
使用純函數(shù),函數(shù)返回值只取決于參數(shù),不產(chǎn)生副作用
函數(shù)副作用是指函數(shù)在正常工作任務之外對外部環(huán)境所施加的影響。
函數(shù)副作用是指函數(shù)被調(diào)用,完成了函數(shù)既定的計算任務,但同時因為訪問了外部數(shù)據(jù),尤其是因為對外部數(shù)據(jù)進行了寫操作,從而一定程度地改變了系統(tǒng)環(huán)境。
函數(shù)的副作用也有可能是發(fā)生在函數(shù)運行期間,由于對外部數(shù)據(jù)的改變,導致了同步運行的外部函數(shù)受到影響。
函數(shù)式編程的好處
- 代碼簡潔 使用lambda表達式
- 多線程安全
- 測試更加容易
Kotlin對函數(shù)式編程的支持
- 函數(shù)類型,允許函數(shù)接受其他函數(shù)作為參數(shù),或返回其他函數(shù)
-
lambda表達式,樣板代碼方便傳遞代碼塊 - 數(shù)據(jù)類,創(chuàng)建不可變對象的簡明語法
- 標準庫有豐富的API
總結
- Kotlin是靜態(tài)語言支持類型推導,在維護正確性與性能同時保持代碼整潔
- Kotlin支持面向?qū)ο蠛秃瘮?shù)式兩種編程風格,頭等函數(shù)支持更高級別抽象,支持不可變值簡化測試和多線程開發(fā)
- 支持服務器端現(xiàn)存的所有Java框架
- 對Android API提供特殊編譯器支持及豐富的庫,為Android開發(fā)提供了Kotlin友好的函數(shù)
- 與Java互操作性,且有效避免了空指針異常