kotlin 表达式(条件表达式,中缀表达式,when 表达式)

表达式是有值的,java 的if,switch都是分支语句并不是表达式

中缀表达式是运算符重载,只有一个参数,且使用infix修饰 fun的函数

when 表达式是kotlin 替换java语言的switch语句的,功能很是强大啊

if 表达式

package com.testOperaters

/**
 * Created by jingwen on 19/4/14.
 */
fun main(args: Array<String>) {
    //条件语句
    var inputNum: Int = 1234561
    if (inputNum == 123456) {
        println("登录成功")
    } else {
        println("密码错误,登录失败")
    }
    //条件表达式,有值哈
    var result: String = if (inputNum == 123456) {
        "登录成功"
    } else {
        "密码错误,登录失败"
    }
    println(result)
    //条件表达式,强悍吧
    var a:Int = 12
    var b:Int = 100
     var  isALargerB:Boolean = if(a>b){true}else{false}
    println("$a > $b :$isALargerB")
}

执行结果:

密码错误,登录失败
密码错误,登录失败
12 > 100 :false

Process finished with exit code 0

中缀表达式:

package com.testOperaters

/**
 * Created by jingwen on 19/4/14.
 */

class Person{
    /**
     * 这种特殊的运算符重载, 只能有一个参数,且使用infix修饰,不能使用operater修饰
     */
   infix   fun on(any:Any):Boolean{
        if(any.toString() == "earth"){
            return true
        }
        if(any.toString() == "sun"){
            return false
        }
        return true
    }
}

fun main(args: Array<String>) {
    var arrays:Array<String> = arrayOf("jingwen","zhulina","chengcheng","suanwen")
    //
    println("zhunlina 在数组里吗?")
    println("zhulina" in arrays)

    println("刘亦菲 在数组里吗?")
    println("刘亦菲" in arrays)

    //on不是定义好的操作符,我们可以自己定义,比java强吧?

    var person:Person = Person()
    println("人在地球上面吗")
    println(person on "earth")

}

执行结果:

zhunlina 在数组里吗?
true
刘亦菲 在数组里吗?
false
人在地球上面吗
true

Process finished with exit code 0

when表达式:

package com.testOperaters

/**
 * Created by jingwen on 19/4/14.
 */

/**
 * kotlin 已经把switch 干掉了
 * 使用更牛逼的分支表达式when,当什么条件就干什么事
 * 可以使用范围 当做case
 */

fun main(args: Array<String>) {
    var state: Long = 123;
    when (state) {
        in 0..100 -> {
            println("$state 在 0~100")
        }
//        is Int -> {
//            println("$state 是整数类型")
//        }
        !in 100..222 -> {
            println("$state 不在 100~200")
        }
        else -> {
            println("我谁都不属于,我是宇宙大将军")
        }
    }
}

执行结果:

我谁都不属于,我是宇宙大将军


 

猜你喜欢

转载自blog.csdn.net/jingwen3699/article/details/89300493
今日推荐