kotlin - 概述

本來是沒打算寫這篇的,網上這么多 kotlin 的學習文章了,跟著學就行了,沒必要自己在寫了總結了,但是吧,初步學習 kotlin 再使用后,寫出來的還是 java 樣式的 kotlin 代碼,看別人的 kotlin 寫的 demo 居然看不懂,我去了,這才知道 kotlin 學習不能光知道基礎語法啊,還是的深入學習 kotlin 期中的特點才行,這不又深入學習的一番,領略了下函數式編程,高階函數的味道,感觸和學習自來哦很多,不寫筆記是不行了呀 ~

說在開頭

kotlin 上手很簡單,因為可以完美支持 java ,和 java 比較像的緣故,我們熟悉下 kotlin 的語法,1-2天就能寫出 java 語法式的 kotlin 代碼了,但是我們絕對不能只不如此,kotlin 本身的高級特性代表著語言的發展趨勢,本身也是很簡單,高效的,我們必須真正熟悉 kotlin 自身的寫法,不要抗拒,擁抱 kotlin,零碎東西不少,但是我們總結一下,平時多用用,也就熟悉了

我對于 kotlin 的問題是,我不是知道很多高級特性的應用場景,這是個大問題,不知道用在何處又怎么能真正理解,通惠貫通呢~

對于 kotlin 這門語言的特點,我是非常推薦大家去看看 2017 北京 GDG _ 語言選型 這個演講的,非常 Nice ,相信看過的同學都會對如何考量一門語言有些心得的

java 畢竟30歲了,雖然一直在改變,但是底層的東西很難改,再說大家也不會用太新的 SDK ,這些年語言的發展出現了一些新的語言特性:函數式編程、Lambda 表達式、流式API、高階函數、空指針安全,協程,這些 Kotlin 都有體現,作為移動端開發,隨著 android 下一代的臨近,Flutter 的橫空出世,java 離開我們的日子不遠了,新接觸的語言必然會包含有上面這些新的語言特性,代表著編碼風格也是會大幅度變化的,kotlin 作為一個向主流語言的學習過度我個人認為還是非常恰當的,就算 Flutter 以后我們用 Dart 了,現在取學習 kotlin 也是不虧的


函數式編程

kotlin 的特點是既支持面向對象又支持函數式編程,仔細體味 kotlin 的變成風格,雖未強制但是還是在引導,推薦我們走向函數式編程的道路,java 太老了,就算是 java 也在往函數式編程上靠了,所以擁抱變化吧,世界既然是這么發展的,自然有其道理,我們接受新思想,變化代碼風格,尋找優點,適用變化,變為己用就好了

我們理一理語言變化的歷程,能更好的理解函數式的思路:

  • 從機器碼 -> 匯編 -> 編程語言的出現
    010101101 這就是機器碼,要是這么編程,NM 要死的心都有了,實在是不友好,太難了,之后又出現了匯編,但是也不友好,最后各種變成語言出現啦,這下簡單多了,語言把我們寫的編譯成機器碼,然后交給硬件取運行

  • 從面向過程到面向對象
    c 是面向過程的,一切都得告訴機器怎么來,一步一步的,學習起來也是很難,沒看學 c 的一上手時都哭天喊地的嗎,后來面向對象興趣了,參考自然界的法則,把任務事務都看是對象,把 c 中的那些代碼過程根據邏輯包裝成一個個方法,然后我們通過組合管理對象間的管理,來完成 c 的任務,好比是把紛亂的管道變成積木,我們搭積木可是讓整個過程簡單多了,更容易理解,更容易編寫

  • 從命令式編程到函數式編程
    語言的變化是越來越簡單,越來越邏輯話的,如果說面向對象是把 C 中的方法根據邏輯包裝成一個個的對象的話,那么函數式編程比面向對象更簡單,面向對象還的包裝成對象,對象里寫方法,函數式編程直接把這一段段方法看成對象,把紛亂的水管世界變成一條直線的,根據數據處理流程順序組合把一段段水管拼接起來。面向對象最貼近顯示世界,最符合人類的思維邏輯,所以面向對象的地位不容動搖,函數式編程是面對數據產生和處理這個特定領域出現的思維,可以讓代碼變得更直接,更直觀,更簡單,最好的例子就是 rxjava ,時下的思路使用面向對象處理業務,框架之間的邏輯,用函數式來處理數據,消息


koltin 允許我們把一個函數作為對象來使用,同樣的也能在函數里把另一個函數作為參數傳進來使用,這樣我們就不必持有另一個對象的引用了,方便很多,我覺得也是 kotlin 和 java 最大的區別,函數式對象有很多擴展玩法,也是出上手 kotlin 同學難看懂的,但同時也是非常有意思的,學 kotlin 必學 函數式對象



學習資源:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。