文章目录
- 前言
- kotlin 优势
- kotlin与java 区别
- 总结
前言
想想接触kotlin 也将近三年了,其实从java 切换到kotlin 没什么难的,就是心理上的畏惧罢了,真的去写,在项目中写出来,上手也是很快的。其实这个过程最难的就是会想,用kotlin 写会有什么问题,其实尽管你原来的项目是用java写的,完全不用担心的,是可以混着写的。
说再多,还不如自己亲自上手去写,且不说用什么高阶函数,一开始上手的时候,用最基础的就行,慢慢就习惯了。
现在kotlin 可以说是必备的了,因为很多开源库基本基本都是kotlin 写的,另外这个也是google主推的语言。
kotlin优势
kotlin有这么些好处:
1、空引用由类型系统控制,再也不会遇到NullPointerException。
2、使用高阶函数,就是可以将函数作为参数,或者作为返回值来使用。
3、给一个类扩展函数,不需要继承,直接通过类名+"." + 方法就可以。比如
fun MyClass.add(a:Int,b:Int) = a+b 就对MyClass扩展了一个函数。
kotlin与java 区别
接下来,列举kotlin 与 java 区别:
1、java 中的原始类是Object, 而在kotlin 中是Any。
Any 方法中只有equals(), hashCode(),toString()
2、kotlin 中的类型判断是is, 类型转换是as
is 相当于java的instanceof
3、kotlin 中默认的访问权限是public,就是类如果不写修饰符,默认是public
4、类默认是final, 如果这个类要被继承,就要加个修饰符open
5、kotlin 中没有switch 而是使用when, when 不仅支持String类型,还支持表达式,而且还能有返回值。
6、声明一个类直接就一行代码,比如 class Student(var name:String, var age:Int)
7、声明一个单例更简单,比如 object SingleInstance
8、实体类,直接通过data 来进行修饰。
data class Student(var name: String, var age: Int)
1、自动为成员生成 setter 和 getter
2、会自动重写 equals()/ hashCode() 和 toString()
3、data 类默认是final的,无法被继承。
9、kotlin接口中的方法可以写默认实现,java不行。
10、kotlin 的类名之外的函数,叫做包级函数,包括扩展函数,都是静态的。在编译的时候,
kotlin 就把所有的包级函放在一个类中,java 可以通过Student.getMessage()来调用。
class Student(var name: String, var age: Int){ }
fun getMessage(){
//todo
}
11、kotlin 通配符是*,不再是?。?一般放在申明变量是可null的。
12、kotlin 中没有static,用伴生类代替。
companion object{
var num: Int = 3
fun get(): Int{
return num
}
}
13、kotlin 中,函数是一种类型,可以把具体的函数当成对象传递,比如lambda表达式就是一个匿名函数
14、kotlin 有几个常用的标准高阶函数,比如run(), with(),apply(),alse(),let(),这几个在开发中使用,可以让代码看起来更整洁。
总结
语言更多的通过项目的实践,然后多写,慢慢就熟悉了。因为本身有java的开发经验,所以要用kotlin 写也不难的,另外开发工具还支持,拷贝java代码粘贴到kotlin文件就转化成kotlin的代码了,应急的时候这么做也是可以的。熟练之后,koltin开发还是很舒服的。
如果对你有一点点帮助,那是值得高兴的事情。:)
我的csdn:http://blog.csdn.net/shenshizhong
我的简书://www.greatytc.com/u/345daf0211ad