Kotlin到底是什么?
我想在我们讨论为什么要使用kotlin之前,我们应该先了解一个概念,那就是kotlin到底是什么?kotlin是一种针对java平台的新编程语言 ,由 [JetBrains] 开发的静态编程语言,既可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行,目前已正式成为Android官方支持开发语言。
Kotlin的优点有哪些?
一 简洁
和许多其他现在语言一样,Kotlin有丰富的标准库,让你用库方法调用来代替一些冗长重复的代码段,这可以帮助我们省去大量的时间去写重复代码。除去有丰富的标准库之外,就连我们日常最简单的数据类声明,以及字段的引用,Kotlin都要比java简洁很多,让我们简单的创建一个Person类来看下为什么说Kotlin要简洁很多。
Java方式创建
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
//字段的引用
new Person("张三",20).getAge();
Kotlin方式创建
data class Person(var name: String, var age: Int)
//字段的引用
Person("张三",20).age
通过代码来看,为什么说Kotlin更简洁就不言而喻了吧。当然Kotlin的简洁可不只体现在数据类的创建上,我们就不一一举例了。
二 安全
对于大多数开发来说,NullPointException想必都是十分熟悉,这种问题对开发来说是很容易解决的,但往往也是我们面对的最多的,线上的崩溃可以说不占到80%,70%应该也是有的,虽说好修复,但也是很头痛的,想解决但又无处下手,毕竟我们不可能在每次使用变量的时候都进行判空处理,那么,这时候你就可以尝试使用Kotlin了。
Kotlin的空安全机制会尽最大的努力帮你从你的程序中消除NullPointException,为什么这么说呢?因为Kotlin 的类型系统会跟踪那些可以或不可以为null的值,并且禁止那些运行时可能导致NullPointException的操作,并且所带来的的额外成本是极小的,我们只需要把类型标记为可空的就可以了,eg:
val s1: String? = null <--可以为null
val s2: String = "" <--不可以为null
我们来看下s1和s2调用的时候,会有什么不同呢?
fun method(){
println("${s1?.length}")
println("${s2.length}")
}
通过代码我们可以看到,在使用s1的时候我们使用了安全调用运算符?.(这里我们以后会介绍)来保证我们在使用s1的时候不会NullPointException,从而避免了程序的崩溃,保证了我们代码的健壮性。
三 静态类型
Kotlin和Java一样是一种静态类型的编程语言。这意味着所有表达式类型在编译期就已经确定了,减少了运行时的错误,性能得以保证,但在这里,Kotlin与Java不同的是,Kotlin不需要你显式的声明每个变量的类型,在很多情况下,变量类型可以根据上下文自动判断,我们称之为类型推导,让我们来具体看下Kotlin的这种能力吧。
val age : Int = 20
//在这里我们完全可以使用下面的声明方式,
//来让编译器提我们类型推导变量的具体类型,
//而不需要我们显式的声明类型
val age = 20
就这样,Kotlin拥有了静态语言的优势,同时在声明变量的时候也无需再写冗长的显式声明的变量类型了,想想还真的是,真香!
四 与Java的互操作性
在使用Kotlin之前,你的第一个问题可能是:“我是不是可以继续使用现有的库?” 答案那必然是:“当然可以。”无论是哪种库提供的API,你在Kotlin中都可以使用他们,可以调用Java的方法、继承Java的类、实现Java的接口、应用Java的注解,等等。而且Kotlin在最大程度上使用现有的Java库,eg:集合库,它完全依赖Java标准库的类,使用额外的函数来扩展他们,以便让我们在Kotlin中调用起来更方便,而且在运行时没有任何的额外开销!!
总结
- Kotlin是静态编程语言并支持类型推导,允许维护正确性和性能的同时保持代码的简洁。
- Kotlin的空安全机制,可以很大程度的减少空指针异常,保证app的健壮性。
- 与Java的互操作性极强,可以让我们在现有的项目中很好的使用Kotlin来慢慢过渡。
现在你知道为什么要使用Kotlin了吗??那我们下篇文章见喽,我是小院里栽颗树。
网友评论