前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >认识 Kotlin 语言

认识 Kotlin 语言

作者头像
码脑
发布2019-04-11 15:05:05
9380
发布2019-04-11 15:05:05
举报
文章被收录于专栏:大前端大前端

Kotlin 的背景

  • Kotlin 是一门基于 JVM 且与 JAVA 可 100% 互通的编程语言,用 JetBrains 的话来说 Kotlin 是更『现代化、更强大』的编程语言。
  • Kotlin 由 JetBrains 在 2010 年开发,2011 年开源至 GitHub ,2016 年发布 1.0 版。 源码地址:https://github.com/JetBrains/kotlin
  • Google Android 团队与 JetBrains 的关系不一般。Android Studio 由 Google 研发、维护,但它基于 JetBrains 开发的 IntelliJ IDEA 社区版。
  • Google 和 JetBrains 将为 Kotlin 成立一个非盈利基金会。Kotlin 语言的开发,还是 JB 为主导。
  • Andrey Breslav 是 Kotlin 语言的首席设计师。
  • JetBrains 对 Kotlin 的愿景是:用同一种语言,桥接多平台的不同应用的端对端开发。包括全栈 Web 应用、Android 和 iOS 客户端、嵌入式/物联网等等。(Kotlin 与 Java 100% 互通,并具备诸多 Java 尚不支持的新特性。)
  • Android Studio 3.0 预览版已支持 Kotlin。下载 AS 3.0 预览版后,打开现有的 Java 文件,在「Code」菜单中选择「Convert Java File to Kotlin File」。AS 会添加 Kotlin 依赖,然后把 Java 代码转成同等功能的 Kotlin 代码。
  • Kotlin 易于上手,可以逐步引入到现有项目中。这意味着安卓开发者目前现有的技能和技术积累、投资并没有浪费。

Kotlin 的优势

简洁:大大减少样板代码数量

使用一行代码创建一个包含 getters、 setters、 equals()、 hashCode()、 toString() 以及 copy() 的 POJO:

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

或者使用 lambda 表达式来过滤列表:

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

想要单例?创建一个 object 就可以了:

代码语言:javascript
复制
object ThisIsASingleton {
    val companyName: String = "JetBrains"
}
安全:避免空指针异常等整个类的错误

彻底告别那些烦人的 NullPointerException——著名的十亿美金的错误

代码语言:javascript
复制
var output: String
output = null   // 编译错误

Kotlin 可以保护你避免对可空类型的误操作

代码语言:javascript
复制
val name: String? = null    // 可控类型
println(name.length())      // 编译错误

并且如果你检查类型是正确的,编译器会为你做自动类型转换

代码语言:javascript
复制
fun calculateTotal(obj: Any) {
    if (obj is Invoice)
        obj.calculateTotal()
}
互操性好:充分利用JVM、Android和浏览器的现有库。

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

代码语言:javascript
复制
import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers

Flowable
    .fromCallable {
        Thread.sleep(1000) //  模仿高开销的计算
        "Done"
    }
    .subscribeOn(Schedulers.io())
    .observeOn(Schedulers.single())
    .subscribe(::println, Throwable::printStackTrace)

无论是 JVM 还是 JavaScript 目标平台,都可用 Kotlin 写代码然后部署到你想要的地方

代码语言:javascript
复制
import kotlin.browser.window

fun onLoad() {
    window.document.body!!.innerHTML += "<br/>Hello, Kotlin!"
}
工具友好:可用任何Java IDE 或者使用命令行构建

一门语言需要工具化,而在 JetBrains,这正是他们做得最好的地方!


Koltin 的前景

目前移动端依然把持流量入口,热度不减,市场依旧很大,Kotlin 也已成为 Google 新儿子,是 Android 官方支持的首选开发语言,BAT 等国内外一线互联网公司都已在线上项目中积极使用,它确实极大提升了开发效率、系统安全性同时有极高互通性,是一门潜力较高的编程语言——必须掌握,以备不时之需!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.02.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kotlin 的背景
  • Kotlin 的优势
  • Koltin 的前景
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档