kotlin表达式是什么?中缀、分支、When详解

KLQ 2020-04-21 15:21:42 java常见问答 7749

下面要给大家讲到的是kotlin表达式,具体内容介绍了中缀表达式、When表达式以及分支表达式,一起来了解一下吧。

一、中缀表达式

中缀表达式只有一个参数,并且是用infix修饰的函数

例:

//书
class Book{
    //infix 自定义运算符的中缀表达式。本没有on,自定义一个,不需要类名.方法即可调用
    //传入任意类型,返回一个Boolean类型的参数
    infix fun on(any: Any): Boolean{
        return true
    }
}
//桌子
class Desk

fun main(args: Array
<String>) {
    if(Book() on Desk()){
        println("书在桌上")
    }
}

二、When表达式

When表达式加强版的switch,支持任意类型,支持纯表达式条件分支(类似if),表达式必须是完整的。

例:

package net.println.kotlin.chapters

/**
 * @author:wangdong
 * @description:`WhenExample.kt`
 */
fun main(args: Array

<String>) {
    val x = 5
    when(x){
        //是否是int
        is Int -> println("hello $x")
        //是在区间范围内
        in 1..100 -> println("$x 在1-100区间内")
        //不在区间内
        !in 1..100 -> println("$x 不在1-100区间内")
        //判断x和下面的表达式值是不是一样
        args[0].toInt() -> println("参数和 $x 一样")
    }

    val mode = when{
        args.isNotEmpty() && args[0] == "1" ->1
        else -> 0
    }

    println(mode)
}

三、分支表达式

分支表达式假如条件比较多,例If

最简单的登陆

例:

package net.println.kotlin.chapters

import sun.security.util.Debug
import sun.security.util.Password

/**
 * @author:wangdong
 * @description:分支表达式实例if
 */

private const val USERNAME = "wangdong"
private const val PASSWORD = "123456"
private const val ADMIN_USER = "root"
private const val ADMIN_PASSWORD = "123456"

private const val DEBUG = "1"
private const val USER = "0"

fun main(args: Array

<String>) {
    var mode = if (args.isNotEmpty() && args[0] == "1"){
        DEBUG
    }else{
        USER
    }

    println("输入我的用户名")
    //readlin从控制台接收数据
    val userName = readLine()
    println("请输入我的密码")
    val passWord = readLine()

    if (mode == DEBUG && userName == ADMIN_USER && passWord == ADMIN_PASSWORD){
        println("欢迎管理员登陆")
    }else if (userName == USERNAME && passWord == PASSWORD){
        println("欢迎登陆")
    }else{
        println("用户名或者密码错误")
    }
}

延伸阅读:

计算机程序当中最小的程序单位成为表达式,每个表达式都能够由2个部分组成,也就是运算符和操作数。

操作数能够是方法、类、变量、数组、常量等,也可以是其他的表达式。

但是,运算符则用于支出表达式中单个或者是多个操作数参与运算的规则,表达式通过运算以后产生的值依赖于表达式中包含的运算符的优先级和结核性。

Kotlin语言包含了Java语言当中的所有运算符的特性,并且结合C语言的优点,增加自定义运算符的逻辑。

在这些运算符当中,主要包括自增自减运算符、赋值运算符、算数运算符、逻辑运算符、区间运算符、关系运算符等。

以上就是对于kotlin表达式的一些介绍了,更多关于kotlin的相关内容,请继续关注本站的java架构师栏目了解吧。