• Kotlin编译器优化与when关键字详解


    Any类型:

    定义一个函数,其参数接受所有类型,对于Java而言Object是所有类的基类,而在Kotlin中得用Any关键字,如下:

    其中瞅一下该Any字段是个啥类型:

    然后里面做一些判断:

    这是因为Kotlin自动的将str转换成了String了,因为有了条件类型的判断了,如下:

    我们知道如果换成是Java,代码肯定得这样写:

    很明显可以看到Kotlin更加的智能,对于Java明显显得有点麻烦,好,接下来调用一下,这里有个小技巧,对于我们Java而言如果在IDE中敲sout就可以快速的打出Sytem.out.println(),而其实对于Kotlin中也可以用sout这个快捷方式打出println(),如下:

    接下来调用一下:

    数组相关:

    而其实类型声明可以去掉,因为可以类型推断出来:

    接着来看一下intArrayOf的官方说明:

    所以可以看到就是一个Int类型的数组,对于Kotlin的Int目前已经使用比较多了,有必要对它进一步了解,跟进去瞅下它到底是啥?

    是一个Int的类,另外IntArray类型也再瞅一下:

    好接下来则遍历一下数组,有几种方式,之前也已经使用过了,如下:

    其中由于有类型推断,所以这块类型声明可以去掉:

    接着换一种方式,可以遍历数组的下标,也是Kotlin提供的一个方便的方式,如下:

    最后还有一种方式,同时可以遍历元素和索引:

    when关键字:

    它的应用场景是非常多的,跟Java的if...else if...或switch..case的作用差不多,下面编写一个函数,来完成这样的一个功能:如果传给函数的参数是“hello”,则会转换成“HELLO”返回,而如果传的是“world”则会转换成“WORLD”返回,而如果是传的是“hello world”则会转换成“HELLO WORLD”返回,而如果是其它的字符串则直接“other input”,对于Java来实现这个需求那是非常简单的,但是在Kotlin中如何利用when关键字来实现呢,如下:

    其实它还有更加精简的写法,IDE已经给出提示了:

    可以用IDE的提示:

    下面来调用一下:

    其实。。程序还可以继续简化,因为咱们目前这个函数体就只有一个when表达式,其实是可以直接给函数赋值的,如下:

    另外继续来用下when:

    那,如果a要在一个范围内来匹配,而不是只匹配一个值该怎么弄呢?

    那如果还要匹配更多的值呢?

    其中看一下细节,对于这个“..”查看它的定义,其实会看到是它:

    好,另外目前程序还是报错的,如下:

    所以:

    该关键字在实际开发中是非常常用的,所以需要好好消化。

  • 相关阅读:
    angularjs $index用来取顺序
    angularjs &登录跳转
    if(!confirm("您确定删除吗?")){return;}
    登录跳转
    undefined null测试
    git生成密钥
    遍历map
    网络相关名词解释
    redis的Pub/Sub
    SQLAlchemy的使用
  • 原文地址:https://www.cnblogs.com/webor2006/p/11186089.html
Copyright © 2020-2023  润新知