Kotlin来了 2 - 空即是色?

作者: a1c39d1714f9 | 来源:发表于2017-05-21 17:44 被阅读140次

    刚接触java的c/c++程序员

    听说java奉行一切皆对象

    一定以为空指针的难言之隐从此一洗了之

    许多年以后还是深深疑惑

    空如果即是色,也算对象

    为何还会奔溃?

    空指针问题其实是程序语言自带的坑

    要千千万万程序员去填

    而且不设置任何警示标志

    c和java的江湖一直如此

    Kotlin来了

    世界有点不太一样

    当沿用老的方式声明空变量行不通了

    var output : String
    output = null

    Kotlin编译器就检测出来报编译错误

    变量声明默认都是不可以为空

    可以为空的变量需要在声明时加问号

    var output : String? = null
    println(output.length())

    一旦变量带上问号声明为可以为空

    Kotlin编译器就可以明确检查那些还是空就被访问的语句(如上面的println一行)

    爆出编译错误而不用等到运行时才崩溃

    这是Kotlin号称的Safe - 安全。

    关于Safe - 安全特性在动态类型检查转换

    在Java的代码

    if obj instance of String
       println(((String)obj).length);

    一直觉得已经明确判断是类型String了

    后面还要强制转换后才能访问还类型成员

    代码看起来很傻很2

    Kotlin来了

    if obj is String
       println(obj.length)

    这编译器是我认为对类型安全具备了最起码的智能.在她的世界里,空就是空,色就是色,空色是空色,色空是色空,清清白白,干干净净。

    相关文章

      网友评论

        本文标题:Kotlin来了 2 - 空即是色?

        本文链接:https://www.haomeiwen.com/subject/mnhvxxtx.html