-----笨笨的Kotlin是根据《Kotlin从零到精通 Android开发》一书为基础,做自己的读书笔记和精简书中的类容-----

Kotlin学习--03

2.控制语句

 

2.1条件分支

 

2.1.1单路分支

    if...else...的操作,有点类似三次元运算符。可以返回值,没啥好说的。所以java的三元运算符被取消掉了。

 

2.1.2多路分支

    switch...case被修改成when..else,case 被 “常量/变量->”代替,而且不再需要break,默认只处理一条。

    而且还有一个有意思的扩充

    就是关于在“常量/变量->”的判定中,如果常量的判定是好几个,可以用逗号隔开,如果是范围判定的话,可以使用“in 开始值..结束值”指定区域,如果不在这个区域  !in  这样就可以了

 

2.1.3类型判断

    java中的instanceof被is关键字代替。同时when...else也支持类型的判断,大概变成这样“is Int ->”

    补充一个点,在kotlin中,有个关键字就是Number分别可以代替Long,Double,Float等类型。

 

2.2循环处理

 

2.2.1遍历

    在kotlin取消掉了for(,,)三个参数的做法,取而代之的是之前提过的for(i in listarray.indices)

 

2.2.2条件

    for(,,)三个参数的做法,取消掉之后,付出的代价总结如下:

    1.如何设定条件判断的起始和终止值

    2.每次循环递增的值不是1

    3.循环方向的判定

    4.与条件判断有关的变量不止一个

    5.循环过程中的变量,是否还可以适用。

 

    针对上面的一些问题,出现了几个关键字,until,step,downTO

    

fun for3var(){

    //从11开始遍历到66  包括11不包括66

    for(i in 11 until 66){ }

    

    //每次递增4

    for(i in 23..89 step 4){ }

    

    //递减

    for(i in 50 downTo 7){ }

}

 

用起来起始还是怪麻烦的,可以换一种方法。用while循环

fun whileTest(){

    var poem : String = "";

    var i : Int = 0;

    var poemArray : MutableList<String> = mutableListOf("how","do","hyou");

    while(i < poemArray.size){

        if(i%2 == 0){





        }else{

            

        }

        i++;

    }

}

 

 

相对的 还有do..while

do{

    if(i%2 == 0){





    }else{





    }

    i++;

}while(i < poemArray.size)

 

2.2.3跳出循环

    关键字符continue和break的操作依旧保留。只是做出了一个有趣的改进,就是跳出的层级有了改善。

    假设像过去的,拥有两层for循环,现在是两层的while循环,内层判断结束需要直接跳出双层循环,就要break,break。

    kotlin在这方面做了个骚操作。

    

fun jumpFor(){

    var poemArray : MutableList<String> = mutableListOf("how","do","hyou");

    var i : Int = 0;

    var is_found = false;

    [email protected] while(i < poemArray.size){

        var j = 0;

        var item = poemArray[i];

        while(j < item.length){

            if(item[j] == 'w'){

                is_found = true;

                [email protected];

            }

            j++;

        }

        if(is_found)

            break;

        i ++;

    }

}

2.3空安全

2.3.1字符串空安全判定

函数

解释

isNullOrEmpty

空指针和子串长度为0

isNullOrBlank

空指针和子串长度为0,加一个全为空格

isBlank

子串长度为0,加一个全为空格

isEmpty

子串长度为0

isNotEmpty

子串长度大于0

isNotBlank

子串长度大于0且不是全空格串

2.3.2声明可空变量

    使用特殊符号?即可。

    特殊的几个符号

符号

备注

可null

?.

判断为空的话返回null

?:

为null的话取值

!!

把可空类型强制变成非空类型

2.4等式判断

2.4.1结构判断

字符串等值判断要求

Java的判断

Kotlin的判断

判断两个字符串是否相等

A.equals(B)

A==B

判断两个字符串是否不等

!A.equals(B)

A!=B

结构相等和引用相等

 

A===B

结构相等和引用不相等

 

A!==B

2.4.3 is和in

is相当于instanceof  这个不说了

来说一下in.判断数组中是否存在该元素的操作。

 

-----用例代码分享在Github.有兴趣的小伙伴可以去直接看.-----

https://github.com/BXHero/KotlinStudy

===有不对的地方欢迎留言和讨论===

相关文章:

  • 2021-04-06
  • 2022-01-15
  • 2021-10-11
  • 2022-01-23
  • 2021-07-18
  • 2021-09-27
  • 2022-12-23
  • 2021-06-22
猜你喜欢
  • 2021-10-08
  • 2021-09-07
  • 2021-08-02
  • 2021-05-30
  • 2021-12-03
  • 2022-01-05
  • 2021-08-23
相关资源
相似解决方案