Kotlin學習(1)初識及環境搭建
今天開始學習Kotlin,應該兩到三個月內完成基礎的Kolin學習。
Android Studio環境搭建
IDEA是Kotlin的一等支持編譯器,但是Android程序員還是更喜歡使用Android Studio來編寫demo。
Android Studio3.0
以上內置了Kotlin原生支持,所以之后的學習的編譯環境都是在Android Studio上。
在AndroidStudio創建工程的時候,使用下面選項:
創建工程后,因為非國內的jcent下載kotlin包會很慢,可能會出現Could not download kotlin-gradle-plugin.jar
的錯誤,所以在 build.gradle下將jecent替換:
然后,環境算是搭建好了。點個錘子+運行:
初始Kotlin語言
Kotlin現在是Android開發的一種趨勢,其在Android的使用的比重使用是越來越大,雖然現在和Java比還是28開(前幾年是19開),但既然是趨勢,那我們就有必要學習并加入到武器庫中,就跟AndroidX一樣。
Kotlin為什么會成為一種趨勢,那它肯定有許多Java不及的優點,下面我列舉幾個其特性:
- 和Java及JVM的互操作性,即可以無縫使用各種Java Api框架庫
- 多平臺:適用于Android、JS、本地系統編程(Native)
- 語法簡潔(就是比較好學)
- 支持類型推斷( Java中要寫 int/float ,Kotlin 中只用寫 val,編譯器就會幫你推斷類型)
- 區分可空類型和不可空類型(這對于一個經常忘記判空的Java程序員來說非常的友好= =)
- 集成了 文件I/O、正則匹配、線程等工具類
Anko庫
使得Android開發速度更快
總的來說可以概括為:
- 實用
- 極簡
- 多范式
- 可擴展
Kotlin可以直接擴展函數與屬性。(還記得裝飾模式嗎) - 高階函數與閉包
- 支持快速實現DSL
- 空安全
Kotlin與Java的互操作性
給出下面一段代碼:
//fun是函數關鍵字,后面跟的是函數名, 冒號后面是 返回類型
fun getList() : List<String> {
//直接使用了 ArrayList這個Java的Api
val arrayList = ArrayList<String>()
arrayList.add("A")
arrayList.add("B")
arrayList.add("C")
return arrayList
}
...
println(getList())
打印結果:
I/System.out: [A, B, C]
從上面可以看出
- Kotlin可以直接使用Java的Api
- Kotlin語句不用寫 逗號
- 使用
val
聲明了一個 ArrayList的對象
擴展函數與擴展屬性
可以在不修改原來類的條件下自定義函數和屬性,使得它們的表現就像是屬于這個類一樣
例如,我們給String類型擴展一個返回字符串首字母的 getFirstChar()
的函數:
//直接String后面加個.然后 寫出該函數
fun String.getFristChar(): String {
//this表示調用者對象
if (this.isEmpty()) {
return ""
}
//返回下標為0的字符并轉成String類型
return this[0].toString()
}
...
Log.d(TAG, "abc".getFristChar())
打印結果:
D/MainActivity: a
不可空類型與空安全
Koltlin中引入了不可空類型與可空類型來明確聲明一個變量是否可能為null
同時在編譯期通過類型是否匹配來檢查空指針異常,大大降低了空指針異常出現的概率。
同時Kotlin還提供了 Elvis操作符
,安全調用符
等極簡的語法格式來判空
比如下面的代碼:
當我們聲明了一個字符串,系統會默認推斷 a 為 不可空的String,所以我們之后再給a賦值為null,編譯器會直接報錯
如果這個時候我們想聲明一個可空的String類型,就這樣寫:
//聲明一個可空的String類型 [名稱]:[類型]?
var b:String? = "aaa"
在聲明一個可空類型后,一些方法就不能調用了,比如:
不能使用String的方法,必須要調用 (?.)
或者 (!!.)
才可以,就是下面這樣:
var b: String? = "abc"
println(b?.length)
b = null
print(b?.length)
輸出結果為:
3
null
一等函數支持
可以把函數像值一樣進行傳遞
這個特性太頂,以后慢慢講。
智能推薦
Kotlin學習之旅之Kotlin環境搭建(一)
惰性是可怕的,距離上次寫博客都快兩年了,期間忙于種種事,一直沒有更新!現在沒有設么事做,來更新一下久違的博客!打算做成一個系列,記錄一下在學習kotlin遇到的一些問題。 本篇說到的環境搭建其實也沒什么東西,主要是碰到一下在加載插件過程中遇到的一些問題。 聲明一下:我的開發環境是mbp Android Studio 3.0.1 在開發之前需要檢查一下kotlin插件的版本下面會用到,具體步驟如下 ...
Kotlin學習之路(1)--環境篇
安裝kotlin插件 點擊file—settings—Plugins 搜索kotlin,如圖,然后點擊安裝后重啟Studio即可。 重啟后,我們看下是否安裝成功,點擊工具欄的Code選項,看到里面多一個項目convert file to Kotlin file,說明插件已經安裝成功,如圖: 接下來我們就可以在項目中引入Kotlin了。 首先在project的build.gr...
Stuts2學習筆記(1):環境搭建及Demo
源碼: github: https://github.com/liaotuo/Struts2-Demo/tree/master/struts2-demo 環境搭建 下載struts2 官網下載:http://mirror.bit.edu.cn/apache/struts/2.3.34/struts-2.3.34-all.zip 注:本教程使用2.3.34版本 目錄結構 所需基本jar包 解壓app...
學習筆記之——初識Kotlin
2017年8月7號Android 之神 Jake Wharton 加入Google,J 神的推文提到,他加入了 Google Android Framework Team,并且專注在 Kotlin 領域,今年 IO 期間 Google 宣布了 Kotlin 作為 Android 開發的官方語言。未來 K...
Kotlin環境搭建
kotlin是jetbrains公司開發的一門編程語言,關于kotlin網友們評論紛紛,不管怎么說,既然在android studio 3.0后,google正式將kotlin作為了android開發的官方語言,我們還是順應潮流去學習一下。 這里我們使用IntelliJ IDEA 作為學習kotlin的開發ide,這也是jetbrains公司的產品,雖然這家公司的產品不錯,但是很吃電腦配置啊。 下...
猜你喜歡
Kotlin開發環境搭建
Kotlin簡介 Kotlin優勢 IntelliJ IDEAAndroid Studio環境搭建 Eclipse環境搭建 kotlin-compiler 隨著Google I/O大會的召開,Google宣布將支持Kotlin作為Android的開發語言,最近幾日,關于Kotlin的文章、介紹就異常的活躍。工欲善其事,必先利其器,所以今天就為大家介紹一下如何搭建kotlin的開發換環境,需要注意的...
初識Rust—Rust初步環境搭建以及學習—VSCode搭建
初識Rust Rust簡介 Rust是由Mozilla主導開發的通用、編譯型編程語言。 設計準則為“安全、并發、實用”,支持函數式、並行式、程序式以及面向對象的編程風格 , 它有著驚人的運行速度(有些領域甚至超過 C/C++),能夠防止運行錯誤,并保證線程安全。RUST 語言使每個人都能夠構建可靠、高效的軟件。 為了實現安全、速度和斌發行,它沒有采用垃圾回收機制(GC)。這...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...