为何使用kotlin能够节省开发时间

前言:.kotlin是一门语言,光靠一篇文章要入门不太现实,因此这篇文章重点讲的是kotlin相对于java的一些特性和这些特性带来的好处.java

1、简单介绍

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源,idea也是这个公司开发的。编程

Kotlin 能够编译成Java字节码,也能够编译成 JavaScript,方便在没有 JVM 的设备上运行,kotlin可直接在idea里面转为java。设计模式

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。安全

2、优势(重点)

用java用得好好的,为何要用kotlin呢?这里只讲关键的几个点,还有其余特性有兴趣的话能够去深刻了解。编程语言

一、简洁性

其实为何要强调简洁性呢,由于代码量越少,bug出现的几率就越低。若是一个方法须要大量的代码去实现,后面看的人也很差理解和维护。ide

1.一、变量

变量经过var关键字定义,常量经过val关键字定义.既支持类型推倒也支持显示声明类型,大多数状况下都是用类型自动推倒。函数

var intVar // 经过取值能够自动推倒出变量的类型工具

var stringVar: String "abc" // 也能够显式声明变量类型学习

val INT_VALUE // 使用val关键字定义常量

idea

1.二、数据类

数据类是kotlin一个可明显看出减小代码量的特性。

// 数据类,除了有name和age两个成员变量以外还自动生成了equals,hashCode,toString等方法

data class Person(var name: String, var age: Int)

只须要这一行代码,就至关于java中一个实体类。

1.三、集合

不可变list

val list = listOf("a","b","c")

可变list

val list = mutableListOf("a","b","c")

其余集合也同理,而java要实现相同的功能须要new,再逐一set进去。

1.四、字符串拼接

val info = "name:$name,age:$age"

直接在变量前加$

1.五、lambda

kotlin中的lambda语法再加上高阶函数的使用,可把原来几十行代码精简为几行代码,但初学时会难以理解。

fun getNumResult(result: (Int, Int) -> Int): Int {

return result(1,2)

}

var value = getNumResult{ a, b -> a * b }

上面代码就至关于一个实现了乘法的方法。

 

val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

list.filter { it%2==0 } // 过滤掉奇数

.map{ it*it } // 平方

.sortedDescending() // 降序排序

.take(3) // 取前 3 个

.forEach { println(it) } // 遍历, 打印

二、安全性

java中虽然有@Nullable @NotNull等注解。可是不会在编译期起做用,而是在运行期抛出异常。kotlin在声明变量的时候,能够指定变量是否为空,调用可为空对象时,须要进行空判断。

var mNullable: Any? = null 可空

var mNonNull: Any = XXX 非空

三、无缝衔接java

固然,一个语言就算作的再好,可是没有一个健全的生态的话是很难被大众接受的.kotlin可以火起来,甚至被谷歌爸爸钦定为安卓的官方推荐语言.一个很重要的缘由就是它能够无缝与java相互调用.之前写的java代码不用任何处理就能直接在kotlin中使用,而java也能无缝调用kotlin代码.

实际上在安卓中,编译的时候kotlin代码就会被编译成java代码,因此它们实际上是等价的.

3、缺点与总结

一、静态代码分析工具的缺少和成熟设计模式的缺少

二、成熟的工具类较少

三、学习成本较高,特别是高阶函数

四、接口没有重载

总结:使用kotlin写某个比较少人须要维护的服务仍是挺不错的,为何强调比较少人须要维护.由于学习一门新语言须要学习成本,不能要求每一个人都懂,可是用kotlin来写确实是能够减小开发时间,虽然原生的kotlin工具类少,但能够调用java的工具类,因此实际用起来仍是不错的。

相关文章
相关标签/搜索