Kotlin急速入门-第二期
IF语句
if就简单了,如果语句嘛,关键字是if
,长得和GO差不多
if (<条件>){
<匹配语句>
}else{
<不匹配语句>
}
Kotlin中,有一些IF的高级写法,具体如下
if表达式提取返回值
有的情况下,我们希望直接将判断结果的值返回到函数,就可以利用该方法直接提取函数值,函数会直接将语句中每个判断分支的最后一句作为返回值
fun (a:Int,b:Int)String{
return if(a>b){
"A"
}else{
"B"
}
}
一般函数表达式写法
有的时候,需要有函数去封装一个判断器,就是用这种写法,这种写法是利用了if表达式提取返回值
方法
可以看到,在下面的函数中,我们没有使用return,直接将if最后一行作为返回值给返回了,这样会更加的优雅
fun checkMax(a:Int,b:Int):String{
return if(a>b){
print("A更大,a为$a")
"A"
}else{
print("B更大,b为$b")
"B"
}
}
更多的我们就暂时用不上了,之后有需要在后续部分补充
When
when就是其他语言中的switch
语句,但是他融合了一些新语言的特性
和JAVA不同,when是匹配就自动停止
when支持一般判断和直接判断值方法
普通判断
就和if差不多,每条语句都要去自定义条件,可用性很高,但是可能语句比较多,如下所示
when{
// 直接对比数字
a>1000 -> print("这个数字太大了")
// 对比区间范围
a in 100..200 ->{
print("a的值在100-200之间")
}
// 对比单个值
a == 2 ->{
print("A是为2哦")
}
// 与或非
a ==20 || a==40 || a==60 || a==80->{
print("A是20、40、60、80之间的数字")
}
}
这里的a>1000
就是判断条件,关于判断条件的用例,我们可以后续看下
需要注意,匹配后就会自动停止,因此可以完全平替if-else
直接判断值
这种方法从语法上就很简练,但是范围就会被限制,总体来说,我是建议用上面那种方法的
语法如下
when(a){
100->{
print("值为100")
}
// 使用范围符的时候一定要用in去表示,在范围符号的作用下,默认..是一个Array类型
in 1..100000->{
print("hi")
}
// when语法在匹配后,就不会在向下运行了,可以看上面我们匹配到了,下面就不会工作了
1000->{
print("你看不到这段字符的")
}
判断条件
判断条件千千万,我这边就说几个有代表的
in
包含语法,一般来说是单个变量对应一个列表,如果该列表中包含该变量,则返回值,语法如下
if(a in 100..200){
print("100..200产生了一个int列表,如果a在列表变量中,则会返回这串信息")
}
==
、<
、>
这个我就不多解释了,就是判断是否等于、大于、小于
可以注意下的是,大于等于是>=
,不要反了
is
是否为语法,我们一般用它来做变量类型判断啥的,用的不多
if (a is Int){
print("如果a是一个Int类型变量,则会输出该串")
}