Kotlin我爱编程程序员

coding with kotlin

2018-08-04  本文已影响18人  f745cc92b2d5

kotlin 简介

JetBranis 于 2016.2.15 发布 kotlin v1.0 版本, 现在官网的最新版本是 v1.2.60。 官网解释为:

Statically typed programming language
for modern multiplatform applications

100% interoperable with Java™ and Android™

和 java 一样,都是跨平台的静态语言。并且百分百兼容 java 和 android 平台。据说 kotlin 曾连续几个月在 TIOBE 上排 49,由此可见其稳定性(>.<)。


tiobe-2018-08

关于 kotlin 的具体介绍,网上已经很多了, 在此不再赘述。

kotlin 基本语法

个人体验

  1. 对 NPE 友好。
    kotlin type check: kotlin 的 基类为 Any(java 中 的 Object)。 kotlin 的类型检查器在编译期间对所有基于 Any 的子类作检查时, 如果有 NPE, 则会报错。
    那么, 如果需要接收空类型时该如何呢?别急, kotlin 里还有这个: Any? 。我看到的一些资料里认为 Any? 是 Any 的父类, 也就是说 Any? 才是 kotlin 里的爸爸。 但我觉得这种类型是 Any 的一个映射, 通过 kotlin 的 type checker 做 NPE check。 查看 kotlin 的源码也可以看到, 只有 Any 类, 并未有什么 Any? 。同时, 该类中的注释也说的很清楚:

    The root of the Kotlin class hierarchy. Every Kotlin class has [Any] as a superclass.

  2. 强大的语法糖。
    相对于 java 在 8 之后支持的 lambda(已经很好用了),用完 kotlin 后,表示十分酸爽。当然, 由于见识的问题, 并没有怎么用过专业的函数式编程语言(Lisp,erlang, scala,haskell 之流),所以 kotlin 的函数式编程对我而言已经很好了。

  3. 支持类扩展

      fun main(args: Array<String>) {
            println(">,<".extension())
      }
      fun String.extension(): String {
          return "$this-class-extension"
      }
    

    用过都说好

  4. 数据类型
    kotlin 提供 data class 作数据类, 告别 getter/setter/equals/hashCode 等。当然, java 可以通过 Lombok 来搞定这些。

  5. 其他静等各位使用后总结了。


  6. 实际使用中遇到过一次。 参见 kotlin using jackson annotation

Reference

  1. wiki kotlin
  2. tiobe
  3. Kotlin
  4. Kotlin TYPE CHECK
  5. Kotlin TYPE CHECK 译文
上一篇 下一篇

猜你喜欢

热点阅读