美文网首页
快速学习Kotlin(九)Kotlin中的特殊符号

快速学习Kotlin(九)Kotlin中的特殊符号

作者: 晨雨细曲 | 来源:发表于2018-10-27 14:09 被阅读19次
    Kotlin

    反引号(键盘左上角和波浪线在一起的符号) ``

    在Kotlin中可以用反引号解决关键字冲突的问题,可以强行将一个不合法的字符变为合法。

    fun `123`(){
        println("this is message")
    }
    
    fun main(args: Array<String>) {
        `123`();
    }
    
    

    例如,我们在命名一个函数名称的时候其实是不能用数字开头的,必须以字母或者下划线开头然后后面再跟数字才行。但是如果非要用数字开头,这时候就必须使用反引号来引用起数字,之后便可以使用了。

    当然一般情况下我们也不允许函数这么被命名,那么这时候我们在那些情况下会用到这种方式呢?

    我们知道在Kotlin中有一个关键字internal,被这个关键字修饰的函数可以被同一个module中任何方法调用。但是在Java又没有这个修饰符,而且Java和Kotlin是100%兼容的,那么这个时候Java在调用这个函数的时候会把他当成public来处理,这显然不是我们想要的。那么该如何让一些函数不能被Java调用呢?这个时候就可以使用反引号来引用一些Java中没有特殊方法来处理这个问题。

    Kotlin对象的比较

    我们知道在Java中“ == ”用来比较这两个对象是否完全相同,而用equals来比较这两个对象值是否一致。

    而在Kotlin中是不需要去调用equals方法的。其默认“ == ”就是java中的equals方法,而“ === ”即为java中的“ == ”。

    也就是说在Kotlin中“ == ”比较的是两个对象的值是否相同,而“===”比较的是两个对象是否相同。

    类型链接 public typealias

    typealias可以将B类映射到A类上,从而这个A类便具有了B类的特性。

    fun main(args: Array<String>) {
        var file:File = A("");
        file.isFile;
    
    }
    
    public typealias A = File;
    
    

    看到我们将File这个类赋值给了A这个类,于是A便有了File的一切特性。我们在main函数中可以用A去实例化产生对象file,通过A实例化的对象file可以调用File的一切方法。这便是typealisa的作用。

    其实在Kotlin中有非常多的类都是通过typealisa去映射Java类从而得来得。比如Kotlin中的HashMap就是通过映射java中的HashMap得来的。为什么会这么做呢?个人认为,这么做的话以后对kotlin中的HashMap进行优化可以直接在kotlin中处理,就不需要去对Java中的HashMap进行兼容了。

    如果觉得我的文章能够帮助到你,也欢迎关注我的微信公众号「晨雨细曲」,有新技术和知识会推送在这上面。

    相关文章

      网友评论

          本文标题:快速学习Kotlin(九)Kotlin中的特殊符号

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