简单理解:
对java的简化,大量语法糖,以及线程优化:协程
1、对get,set省略(包括创建以及使用,同时支持自定义,类似做到lombok的实现)
2、空值判断,通过 ?号,完成空指针的判断,简化极大量java中null的判断
3、java的蓝布达都是弟弟(必须创建函数式接口),kt的函数式编程更加简化
4、糖化带来的负面就是可读性差,语法糖更多是一个使用熟练度的++
5、协程,通俗讲就是单个CUP多线程调度的优化,个人理解,用于IO密集型多线程
- 个人观点
【代码简洁度提升, 可读性下降,实际开发效率个人认为不会提升多少(除非写代码量巨大的底层?)虽然和java无差别适应,但像是用主流spring桶,一种代码风格应该更好】
数据类型
kt基本类型对应包装类就是设置了初始值的基本类型
数据声明:var = 可变 val = 不可变,凡是不进行操作的数据尽量用val(类似final)
数据集合
简单区分,Mutablel则为可变,反之为不可变
复合符号
-
?.
安全调用符
if (foo != null){
return foo.bar()
}else{
return null
}
?:
as?
!!
?
凡是调用方法前,有空指针风险的,都可以通过 ?去解决
作用域
这里贴上官网链接:
常用大概就 let,apply
至此完结!…