這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
大家好,歡迎加入小李君的Kotlin學習之旅。今天是小李君學習Kotlin的第二天,本文將簡述Kotlin文法糖,let‘s do it。
昨日回顧:
- 訪問官網https://kotlinlang.org
- 點擊learn,看Tutorial 文檔
- 在Jetbrain IDEA上建立工程,寫main函數,列印Hello World,運行程式
今日內容:
- 訪問官網https://kotlinlang.org/docs/reference/ ,快速看完Overview
- 直接進入閱讀Getting Started - Basic Syntax
- 練習 Basic Syntax 上的常式
第一步:
看看Overview,並暫且忽略它。
小李君認為,在學習的初期,仔細研讀Overview的經文,是很難有深刻理解的,往往容易讓新手一臉蒙蔽、無所適從。所以,小李君只簡單說一下,讓大家有個印象,等大家學成出山後再回過頭來細細品味。
- Kotlin可以寫服務端程式,Spring 5將支援更多Kotlin文法糖,讓你寫得更爽。
- Kotlin可以寫Android程式,Google直接背書,如同Golang,你懂的。
- Kotlin可以寫Web前端,NodeJS程式。直接玩DOM,JQuery,ReactJS,各種JS,支援ES5,還打算支援ES6;這野心,嗯。
第二步:
研讀Getting Started - Basic Syntax
- package,包,跟Java一樣套路,直接過。
- function,函數,以fun開頭,有點意思,也很簡單。
- variable,變數,以val為唯讀變數(常量),以var為可變變數。666~
- comment,注釋,跟Java一樣套路,/* 稍微先進一點 */,直接過。
- string template, 字串模板,跟Shell Script一樣套路,其實是變數預留位置。讓你不用拼接字串,“輕鬆遠離” + “字串” 。
- conditional expression, 條件運算式,寫 if 語句不用再換行再換行了,簡單的判斷直接一行搞定,if(a>b) a else b。
- nullable values, 空值處理,注意官方例子中返回的類型有個問號,意思是如果你的函數會返回空值,那麼請你顯式地標註它,讓調用者知道你的函數有毒。這是Kotlin的殺手級特性之一,小李君為此慕名而學這門語言。
- type checks and automatic casts,類型檢查及自動轉換,這裡官方例子會有個小跳躍,字串模板中用上三目運算子? : ,以此引出 if 判斷的處理可能跟 Javascript 一樣。以 is 替代 instanceof 和 typeof,!is能取反。能用上自動轉換的前提是常量( immutable local variable or property)。這裡雖然有點懵逼,但不妨礙粗淺理解,以後再細究。
- for loop,for迴圈,就是foreach,很簡單。
- while loop,while迴圈,還是那個幾十年前的模樣,風味不變。
- when expression,when運算式,就是switch case,文法更簡練。
- ranges,範圍,多用在快速初始化數組上,有點意思。
- collections,集合,這個collection跟Java的Collection家族差不多,文法糖更強更簡練。
第三步:
練習 Basic Syntax 例子,把官網的常式都看一遍且運行一遍。
不一定全部都練一遍,但起碼做到大概有個印象,等真正實戰的時候,帶著這些印象加深理解和記憶即可。新手們千萬別死記硬背文法糖,千萬別覺得要完全默寫文法糖出來才能開始真正寫些完整的程式;其實,小李君更加喜歡邊寫邊查。官方文檔在手,天下程式我有。