Kotlin简介

#Kotlin 是什么?

KotlinJetBrains开发的针对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

data class Customer(val name: String, val email: String, val company: String)

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

val positiveNumbers = list.filter {it > 0}

极简的单例模式:

object ThisIsASingleton {
    val companyName: String = "JetBrains"
}

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

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

var output : String
output = null

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

println(output.length())

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

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 代码

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编写代码,并选择你要部署到哪里。

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 在服务端以及移动端都有较好的发展。 2017年5月18日谷歌宣布 Kotlin 成 Android 开发一级语言,并会在AndroidStudio 3中提供相关支持。

转载于:https://my.oschina.net/coderknock/blog/874260

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值