文档章节

Kotlin简介

拿客-三产
 拿客-三产
发布于 2017/04/06 16:59
字数 1112
阅读 402
收藏 2

#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中提供相关支持。

© 著作权归作者所有

共有 人打赏支持
拿客-三产
粉丝 109
博文 75
码字总数 121734
作品 0
丰台
程序员
Android 开发者应该知道的 Kotlin 技巧

今年的 Google I/O 大会上,Google 是这样评价 Kotlin:在过去一年里,有35%的专业 Android 开发者在使用 Kotlin,其中95%的开发者都对 Kotlin 非常满意。虽然 Kotlin 正处于发展的初始阶段,...

码云Gitee
05/28
0
0
浅谈Kotlin(一):简介及Android Studio中配置

浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型、基本语法、代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言:   今日新闻:谷歌宣布,将Kotli...

听着music睡
2017/05/18
0
0
《Kotin 编程思想·实战》目录

《Kotin 编程思想·实战》目录 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 第1章 JVM语言家族概览 1.1 编程语言简史 1.2 程序执行的三种方...

程序员诗人
2017/06/03
0
0
《Kotlin 程序设计》第一章 Kotlin简介

第一章 Kotlin简介 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.jd.com/12181725.html 天猫Tmall:https://detail.tm......

程序员诗人
2017/05/28
0
0
使用IntelliJ IDEA创建Kotlin项目

一、kotlin被谷歌看中后,开始了突飞猛进的进步 下面来看一下维基百科关于Kotlin的介绍 简介: Kotlin是一种在Java虚拟机上运行的静态类型编程语言,它也可以被编译成为JavaScript源代码。它...

王木东
03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

树莓派上安装 Nextcloud 云

# install docker and docker composesudo apt-get updatesudo apt-get install git docker-composecurl -sSL https://get.docker.com | sh# fetch projectcd ~git clone https://git......

How11
12分钟前
0
0
python 基本语法

布尔值:True False,操作符有 and, or, not; 常量通常使用大写表示,如PI = 3.14159265359; 除法操作符有 /, //, %,如 10 / 3 = 3.3333333333333335,10 // 3 = 3, 10 % 3 = 1; 在计算机内存中...

bug_404
14分钟前
0
0
centos 下安装 elastic search 启动的问题

正常步骤 1Download and unzip Elasticsearch 2 Run bin/elasticsearch 3 Run curl http://localhost:9200/ 异常信息: root 账户启动报错,Exception in thread "main" Java.lang.RuntimeE......

xiaomin0322
20分钟前
0
0
mysql_exceptions.OperationalError: 1054

错误:python连接Mysql错误:_mysql_exceptions.OperationalError: (1054, "Unknown column 'CVE' in 'field lis解决办法 注:要根据自己具体情况进行判断,可以 print sql % args,来判断该...

fang_faye
23分钟前
0
0
分布式数据库DDM Sidecar模式负载均衡

简介 1.分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量、性能瓶颈和分布式扩展问题的中间件服务,提供分库分表、读写分离、弹性扩容等能力...

中间件小哥
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部