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要在一个范围内来匹配,而不是只匹配一个值该怎么弄呢?
那如果还要匹配更多的值呢?
其中看一下细节,对于这个“..”查看它的定义,其实会看到是它:
好,另外目前程序还是报错的,如下:
所以:
该关键字在实际开发中是非常常用的,所以需要好好消化。