爲何使用kotlin能夠節省開發時間

前言:.kotlin是一門語言,光靠一篇文章要入門不太現實,因此這篇文章重點講的是kotlin相對於java的一些特性和這些特性帶來的好處.java

1、簡單介紹

Kotlin 是一種在 Java 虛擬機上運行的靜態類型編程語言,被稱之爲 Android 世界的Swift,由 JetBrains 設計開發並開源,idea也是這個公司開發的。編程

Kotlin 能夠編譯成Java字節碼,也能夠編譯成 JavaScript,方便在沒有 JVM 的設備上運行,kotlin可直接在idea裏面轉爲java。設計模式

在Google I/O 2017中,Google 宣佈 Kotlin 成爲 Android 官方開發語言。安全

2、優勢(重點)

用java用得好好的,爲何要用kotlin呢?這裏只講關鍵的幾個點,還有其餘特性有興趣的話能夠去深刻了解。編程語言

一、簡潔性

其實爲何要強調簡潔性呢,由於代碼量越少,bug出現的機率就越低。若是一個方法須要大量的代碼去實現,後面看的人也很差理解和維護。ide

1.一、變量

變量經過var關鍵字定義,常量經過val關鍵字定義.既支持類型推倒也支持顯示聲明類型,大多數狀況下都是用類型自動推倒。函數

var intVar // 經過取值能夠自動推倒出變量的類型工具

var stringVar: String "abc" // 也能夠顯式聲明變量類型學習

val INT_VALUE // 使用val關鍵字定義常量

idea

1.二、數據類

數據類是kotlin一個可明顯看出減小代碼量的特性。

// 數據類,除了有name和age兩個成員變量以外還自動生成了equals,hashCode,toString等方法

data class Person(var name: String, var age: Int)

只須要這一行代碼,就至關於java中一個實體類。

1.三、集合

不可變list

val list = listOf("a","b","c")

可變list

val list = mutableListOf("a","b","c")

其餘集合也同理,而java要實現相同的功能須要new,再逐一set進去。

1.四、字符串拼接

val info = "name:$name,age:$age"

直接在變量前加$

1.五、lambda

kotlin中的lambda語法再加上高階函數的使用,可把原來幾十行代碼精簡爲幾行代碼,但初學時會難以理解。

fun getNumResult(result: (Int, Int) -> Int): Int {

return result(1,2)

}

var value = getNumResult{ a, b -> a * b }

上面代碼就至關於一個實現了乘法的方法。

 

val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

list.filter { it%2==0 } // 過濾掉奇數

.map{ it*it } // 平方

.sortedDescending() // 降序排序

.take(3) // 取前 3 個

.forEach { println(it) } // 遍歷, 打印

二、安全性

java中雖然有@Nullable @NotNull等註解。可是不會在編譯期起做用,而是在運行期拋出異常。kotlin在聲明變量的時候,能夠指定變量是否爲空,調用可爲空對象時,須要進行空判斷。

var mNullable: Any? = null 可空

var mNonNull: Any = XXX 非空

三、無縫銜接java

固然,一個語言就算作的再好,可是沒有一個健全的生態的話是很難被大衆接受的.kotlin可以火起來,甚至被谷歌爸爸欽定爲安卓的官方推薦語言.一個很重要的緣由就是它能夠無縫與java相互調用.之前寫的java代碼不用任何處理就能直接在kotlin中使用,而java也能無縫調用kotlin代碼.

實際上在安卓中,編譯的時候kotlin代碼就會被編譯成java代碼,因此它們實際上是等價的.

3、缺點與總結

一、靜態代碼分析工具的缺少和成熟設計模式的缺少

二、成熟的工具類較少

三、學習成本較高,特別是高階函數

四、接口沒有重載

總結:使用kotlin寫某個比較少人須要維護的服務仍是挺不錯的,爲何強調比較少人須要維護.由於學習一門新語言須要學習成本,不能要求每一個人都懂,可是用kotlin來寫確實是能夠減小開發時間,雖然原生的kotlin工具類少,但能夠調用java的工具類,因此實際用起來仍是不錯的。

相關文章
相關標籤/搜索