作家
登录

Android开发者自述:为什么我要改用Kotlin?

作者: 来源: 2017-05-22 11:15:38 阅读 我要评论

在写这篇文┞仿前的一个多月,Flipboard 中国的 Android 项目肯定了正式将 Kotlin 作为项目开辟说话,这就意味着新增的代码文件将以 Kotlin 代码格局出现,并且同时旧的 Java 代码也将涣陆饨续续翻译成 Kotlin 代码。在应用 Kotlin 的┞封段时光,被它的简洁,高效,快捷等等特点震动,所以有须要写一篇文┞仿来谈一谈 Kotlin 的特点,如若能取得推广 Kotlin 的效不雅则倍感欣慰。

Kotlin的「简历」

  • 来自于有名的 IDE IntelliJ IDEA(Android Studio 基于此开辟) 软件开辟公司 JetBrains(位于东欧捷克)
  • 来源来自 JetBrains 的圣彼得堡团队,名称取自圣彼得堡邻近的一个小岛 (Kotlin Island)
  • 一种基于 JVM 的静态类型编程说话

来自有名的对象开辟商 JetBrains,也就决定了 Kotlin 的基因中必定包含实用与高效等特点。那我们接下来看一看 Kotlin 的特点,当然这也是我改用 Kotlin 的重要原因。

语法简单,不烦琐

Android开辟者自述:为什愦我要改用Kotlin?

  • Kotlin 支撑类型揣摸,没有 Java 那样的烦琐。
  • 别的用 var 表示变量,val 表示常量加倍的简洁
  • 办法也很简单,连 function 都缩写成了 fun,平添了几分双关之意。
  • 类的持续和实现很简单,应用:即可
  • Kotlin 每个句子都不须要加分号 (;)

信赖很多开辟人员,尤其是 Android 开辟者都邑或多或少据说过 Kotlin,当然如不雅没有听过或者不熟悉也没有关系。因为本篇文┞仿以及博客后期的内容会涉及到很多关于 Kotlin 的常识分享。

空指针安然

空指针(NullPointerException 或 NPE)是我们应用 Java 开辟法度榜样中最常见的崩溃了。因为在 Java 中我们不得不写很多防御性的代码,比如如许:

Android开辟者自述:为什愦我要改用Kotlin?

在 Kotlin 中空指针异常获得了很好的解决。

  • 在类型上的处理,即在类型后面加上?,即表示这个变量或参数以及返回值可认为 null,不然不许可为变量参数赋值为 null 或者返回 null
  • 对于一个可能是 null 的变量或者参数,在调用对象办法或者属性之前,须要加上?,不然编译无法经由过程。

Android开辟者自述:为什愦我要改用Kotlin?

Android开辟者自述:为什愦我要改用Kotlin?

关于空指针安然的道理,可以参考这篇文┞仿研究进修Kotlin的一些办法。

支撑办法扩大

很多时刻,Framework 供给给我们的 API 往往都时比较原子的,调用时须要我们进行组合处理,因为就会产生了一些 Util 类,一个简单的例子,我们想要更快捷的┞饭示 Toast 信息,在 Java 中我们可以如许做。

然则 Kotlin 的实现却让人惊奇,我们只须要重写扩大办法就可以了,比如这个 longToast 办法扩大到所有的 Context 对象中,如不雅不去追根溯源,可能无法区分是 Framework 供给的┞氛样自行扩大的。

Android开辟者自述:为什愦我要改用Kotlin?

留意:Kotlin 的办法扩大并不是真正修改了对应的类文件,而是在编译器和 IDE 方面做得处理。使我们看起来像是扩大了办法。

Lambda, 高阶函数,Streams API, 函数式编程支撑

所谓的 Lambda 表达式是匿名函数,这使得我们的代码会加倍的简单。比如下面的代码就是 lambda 的应用。

Android开辟者自述:为什愦我要改用Kotlin?

所谓的高阶函数就是:

  • 可以接收函数作为参数
  • 也可以返回函数作为结不雅

举一个接收函数作为参数的例子。在 Android 开辟中,我们经常应用 SharedPreference 来存储数据,如不雅忘记调用 apply 或者 commit 则数据修改不克不及应用。应用 Kotlin 中的高阶函数的功能,我们能更好的解决这个问题:

当然这膳绫擎的例子中我们也同时应用了办法扩大这个特点。

Kotlin 支撑了 Streams API 和办法引用,如许函数式编程加倍便利。比如下面的代码就是我们结合 Jsoup,来抓取某个 proxy 网站的数据,代码加倍简单,实现起来也快速。

Android开辟者自述:为什愦我要改用Kotlin?

字符串模板

无论是 Java 照样 Android 开辟,我们都邑用到字符串拼接,比如进行日记输出等等。在 Kotlin 中,字符串模板是支撑的,我们可以很轻松的完成一个字符串数组的构成:


  推荐阅读

  SDN在云数据中心的应用——架构篇

SDN概念一向如火如荼,若是要谈到概念落地及大年夜范围应用,必定离不开SDN在云计算数据中间的实践应用。云数>>>详细阅读


本文标题:Android开发者自述:为什么我要改用Kotlin?

地址:http://www.17bianji.com/lsqh/35336.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)