Kotlin简介

2021-01-12 10:15:58 浏览数 (1)

Kotlin 是什么?

Kotlin是JetBrains开发的针对JVM、Android 和浏览器的静态编程语言。

JetBrains,作为目前广受欢迎的 Java IDE IntelliJ IDEA 的开发商,在 Apache 许可下已经开源其Kotlin 编程语言。JetBrains 作为最智能的 Java IDE 的开发商,对 Java 的了解是毋庸置疑的,在使用 Java 过程中,JetBrains 的工程师们发现了大量的问题,为了更高效的开发以及解决 Java 中的一些问题,JetBrains 开发了致力于替代 Java 的 Kotlin。

为什么使用 Kotlin?

1、简洁——大大减少您需要编写的样板代码量

使用一行代码创建一个包含gettersetter并重写equals()hashCode()toString()copy()等方法的POJO

代码语言:javascript复制
data class Customer(val name: String, val email: String, val company: String)

虽然 Java8 中引入了 lambda 表达式,但是由于类库兼容性等问题,我们的一些老项目还在使用旧版本的 JDK。而 Kotlin 提供了 lambda 表达式支持而只需使用 JDK6 版本。下面的代码使用 lambda 表达式过滤List

代码语言:javascript复制
val positiveNumbers = list.filter {it > 0}

极简的单例模式:

代码语言:javascript复制
object ThisIsASingleton {
    val companyName: String = "JetBrains"
}

2、安全——避免整个类的错误,如空指针异常

摆脱那些讨厌的 NullPointerExceptions 可能导致十亿美元损失的错误。

代码语言:javascript复制
var output : String
output = null

Kotlin可以保护您免受对可空类型的误操作,包括来自Java的类型。

代码语言:javascript复制
println(output.length())

如果你检查一个对象的类型是否是某个类型,编译器会自动转换该对象为您检查的类型。

代码语言:javascript复制
fun calculateTotal(obj: Any) {//这里的 Any 相当于 Java 中的 Object
    if (obj is Invoice) {
        obj.calculateTotal()
    }
}

3、多用途——支持多中类型的应用程序

多用途语言允许您构建任何类型的应用程序:

  1. Android开发。 没有性能影响。运行时非常小。
  2. 服务器应用 100%兼容所有JVM框架。
  3. JavaScript 在Kotlin中编写代码,并转换为 JavaScrip 在 Node.js 或浏览器中运行。
  4. 企业 使用Kotlin进行任何类型的企业Java EE开发。
  5. 网页 无论您是要强制类型的HTML,CSS构建器还是简单的Web开发。
  6. 其他所有(ios、嵌入式等等) Kotlin/Native 在2017年4月份推出了预览版,并在在官方博客中描述了对 Kotlin/Native 的美好愿景。 Kotlin/Native 使用LLVM编译器基础架构生成机器代码。在这个预览中,我支持以下目标平台:
    • Mac OS X 10.10及更高版本(x86-64)
    • x86-64 Ubuntu Linux(14.04,16.04及更高版本),其他Linux版本也可以正常工作
    • 苹果iOS(arm64),在MacOS X主机上交叉编译
    • Raspberry Pi,在Linux主机上交叉编译

    博客中提到后期还要加入:

    • iOS应用程序(使用Android重用代码)
    • 嵌入式系统/ IoT(例如,Arduino及其以外)
    • 数据分析与科学计算
    • 服务器端和微服务器(低占用性、可执行,利用协同程序的功能)
    • 游戏开发

4、可互操作——100%兼容 Java 从而可利用已有代码及 JVM 类库

在 Kotlin 代码中随意创建 Java 对象、使用已有 Java 代码

代码语言:javascript复制
import io.netty.channel.ChannelInboundMessageHandlerAdapter
import io.netty.channel.ChannelHandlerContext

public class NettyHandler: ChannelInboundMessageHandlerAdapter<Any>() {
    public override fun messageReceived(p0: ChannelHandlerContext?, p1: Any?) {
        throw UnsupportedOperationException()
    }
}

或者使用 JVM 上的任何现有库,因为 Kotlin 对 Java 有100%的兼容性,包括SAM支持。

指定 JVM 或 JavaScript。在Kotlin编写代码,并选择你要部署到哪里。

代码语言:javascript复制
import js.dom.html.*

fun onLoad() {
    window.document.body.innerHTML  = "<br/>Hello, Kotlin!"
}

5、多工具支持——自由选择命令行编译器或一级IDE支持

Kotlin目前提供了四种编写方式:

  1. 命令行编译工具
  2. 在线编辑 Try Kotlin
  3. Eclipse
  4. IntelliJ IDEA

其中 IntelliJ IDEA 提供了对 Kotlin 最新功能的支持,也是 Kotlin 最智能的编辑器。

前景如何?

目前 花瓣、豆瓣 APP 以及 JetBrains 全线编辑器都在使用 Kotlin,国内很多初创公司也都在使用 Kotlin(尤其是用于 Android 开发)大家可以参考下 哪一些大公司在使用 kotlin 开发应用? Kotlin 被业内称之为 Android 的 Swift ,从这个称呼中大家也能感觉到开发者对 Kotlin 的喜爱程度了吧。Spring Framework 5.0 也提供了对 Kotlin 支持可以看出 Kotlin 在服务端以及移动端都有较好的发展。

0 人点赞