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的支持