kotlin最大的好處就是使得代碼簡潔,但也沒有使得運行效率比java降低很多。
那麼kotlin語言對比java語言,有哪些地方是比較簡潔的呢?
可空判斷和非空判斷
kotlin中可空符號?的出現,讓我們對於java中一些對於變量的判空的實現變得簡潔
if(mText != null )
mText.setText(str_content)
直接可以簡寫爲
mText?.setText(str_content)
data數據bean
對於數據bean類,kotlin中提供data修飾符
data class Book(val str:String)
只需要一個data修飾符,自動幫助我們生成一個Bean類Book,包含了str字符變量的get和set方法,以及自動幫助重寫equals()和hashcode()方法,非常方便
getter、setter
對於Java中的getter和setter方法,kotlin提供了
var StringBuilder.lastChar:Char
get() = get(length -1)
set(value:Char){
this.setCharAt(length -1 ,value)
}
豐富的標準庫
kotlin提供了豐富的自帶的擴展函數:如String.toRegex() ,joinToString() 等
集合的函數式api:filter,map,all,any,groupBy
對lambda的支持
val people = listof()
val name = people.joinToString(separator=" ", transform = {p:Person -> p.name})
可以簡化爲
val people = listof()
people.joinToString(" "){p:Person -> p.name}
kotlin有一種語法規定,如果lambda表達式是函數調用的最後一個參數,它可以放到括號外邊。
另外,象let
,run
,with
,apply
,also這些函數也提供了對lambda的支持