前言
嗯,然後的然後,今天有Qcon大會哈,很不錯哈,公司有5張門票,嗯,明天過去看看。Kotlin 是一個基於 JVM 的新的編程語言,由 JetBrains 開發。Kotlin可以編譯成Java字節碼,也可以編譯成JavaScript,方便在沒有JVM的設備上運行。嗯,上面的話我是複製百度百科的,其實就想說,這東西可以用來開發Android。好,我們來看看這玩意兒。
那麼,現在大家開發Android的話一般來說都是直接用Java,這個沒錯吧(高手除外)。嗯,那麼用力那麼久的Java,不知道大家是否有想過Java的不足,已經很多可以優化的地方呢。當然,新修訂的版本中也逐漸覆蓋以往的不足,但是Android開發者們還沒來得及用上它。所以這也使得Kotlin這樣的語言可以有用武之地,可以讓開發者們在舊的開發環境中使用新的特性。
嗯,然後我想說的是其實我也接觸這門語言不是很久,今天就寫一個入門級的博文吧,至少能讓大家可以在Android Studio中嘗試用Kotlin去開發是吧。
如何在Android studio使用Kotlin開發
(之前我第一次接觸的時候看了很多博文,其實現在的配置完全不用像以前那麼麻煩,其實就很簡單的3個步驟)
1.在IDE plugins中下載Kotlin插件
打開你的Android studio 在設置中打開plugins,然後在裏面搜索Kotlin,點擊安裝,之後安裝後重啓。
2.創建、轉換Kotlin文件
然後就是新建一個工程,然後你可以右鍵試試,看看是不是多出了2個選項。如圖。
然後定位到MainActivity,在菜單欄選擇“Code”,選擇“Convert Java File to Kotlin File”,你會看到你的MainAvtivity變成了Kotlin文件,這個時候其實你去編譯的話是有問題的。看第三步。
3.配置Kotlin(其實是全自動)
然後由於你是第一次使用Kotlin,Studio會提示要你配置Kotlin的,點擊配置即可,其實啥都不用選,直接點“ok”。到這裏你就配置完成了,然後可以試試編譯運行了。
嘗試使用Kotlin編寫代碼
數據類型定義
數據模型在開發中絕對是不可避免的,以往都會定義很多變量,然後添加get(),set()方法。如果現在使用Kotlin開發,你可以這麼定義。
/**
* Created by Blin on 2016/10/20.
*/
data class People(
var id: Long,
var name: String,
var weight: Double,
var height: Double
)
空類型是安全的
以往我們在使用數據的時候最多的就是
if(a != null){
...
}
那麼在Kotlin中其實完全麼有必要這麼寫了,可以看一下下面代碼的順序思路和註釋。
// 這是不允許的,People不能爲null
// var people: People = null
// 以下是正確的聲明
var people: People? = null
// 不可以直接調用people,因爲有可能people是null
// people.id
// 如果people有可能爲null,則必須先用如下的形式判斷
people?.id
// 當然,如果按照java的習慣,先判斷不爲null了,那也是可以直接使用的
if(people !=null) people.id
// 如果能該變量一定不爲null,可以使用2個感嘆號表示,但是如果爲null,那會拋出異常
// people!!.id
可以看出,在上面聲明變量的時候不能直接生命爲null,必須在等號前面加一個? 表示其實people是可以爲null的。然後就是不能直接調用方法或者引用變量,必須在引用之前加?詢問,當然如果能保證當前變量一定不爲null,那可以直接用!!表示然後調用。如果在if()中判斷了不爲null,那麼是可以直接調用的。
可擴展函數
剛纔上面我們創建了一個People類,如果我想要給該類添加一個方法,可以這麼做
fun People.toast(context: Context,message: CharSequence){
Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
}
然後想調用可以這麼調用
mPeople.toast(mContext,"其實我是來測試的")
Lambdas
這個函數其實java8也支持了,當然之前大家是通過第三方依賴來支持的。
我這邊找到那個默認TextView,然後添加點擊事件
tv = findViewById(R.id.text) as TextView?
tv?.setOnClickListener { mPeople.toast(mContext,"其實我是來測試的") }
然後你點擊那個“holleWord” 就可以顯示Toast了。
總結
嗯,總的來說Kotlin真的是非常簡潔,的確極大的簡化了代碼,對於開發者來說的確是可以大大提高開發效率。雖說Kotlin現在可以和java無縫連接,意味着爲我們可以直接使用Java現在已有的大量類庫,所以說這門語語言雖然很年輕,但是已經有這大量的庫可以使用。
在使用過程中我們很少需要指定類型,編譯器可以在絕大多數情況下推斷出變量或者返回值的類型,這直接帶來的好處就是安全與便捷。
還有讓我覺得很棒的就是null是安全的,在java中,遇到最多的,最容易出問題的就是nullPointerExcetion,在Kotlin中的null是顯式的,就是是強制要求開發者去注意這一點,從而減少nullPointerExcetion的出錯率。
OK,明天有事,今天先行,朋友們週末愉快~