Kotlin表达式(中缀、分支、When)

简介: 1、中缀表达式 只有一个参数,且用infix修饰的函数 例如://书class Book{ //infix 自定义运算符的中缀表达式。

1、中缀表达式
只有一个参数,且用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("书在桌上")
    }
}

二、分支表达式(如果条件较多,例如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("用户名或者密码错误")
    }
}

三、简单写一个播放音乐的(when)

package net.println.kotlin.chapters

/**
 * @author:wangdong
 * @description:`WhenExample.kt`
 */
class WhenExample {


    enum class State {
        IDLE, BUFFERING, PLAYING, PAUSED
    }

    private var state = State.IDLE


    fun pause() {
        when (state) {
            WhenExample.State.BUFFERING, WhenExample.State.PLAYING -> doPause()
            else -> {

            }
        }
    }

    fun resume() {
        when (state) {
            WhenExample.State.PAUSED -> doResume(state)
        }//什么都不做
    }

    fun doResume(state: State) {
        if (state == State.PLAYING)
        //处理真正的继续播放逻辑
        println("播放音乐")
    }

    private fun doPause() {
        state = State.PAUSED
        //处理真正的暂停逻辑
    }

}
fun main(args: Array<String>) {
    val example: WhenExample = WhenExample()
    example.doResume(WhenExample.State.PLAYING)
}

四、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)
}
目录
相关文章
|
4天前
|
Java Kotlin 索引
Kotlin - 分支与循环
Kotlin - 分支与循环
|
4天前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
|
10天前
|
Java Kotlin 索引
Kotlin教程笔记(9) - 分支与循环
Kotlin教程笔记(9) - 分支与循环
25 5
|
11天前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
|
13天前
|
IDE 开发工具 Kotlin
Kotlin教程笔记(6) - 函数与Lambda表达式
Kotlin教程笔记(6) - 函数与Lambda表达式
40 4
|
13天前
|
Java Kotlin 索引
Kotlin教程笔记(9) - 分支与循环
Kotlin教程笔记(9) - 分支与循环
25 2
|
17天前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
20 6
|
17天前
|
Java Kotlin 索引
Kotlin - 分支与循环
Kotlin - 分支与循环
44 4
|
16天前
|
IDE 开发工具 Kotlin
Kotlin教程笔记(6) - 函数与Lambda表达式
Kotlin教程笔记(6) - 函数与Lambda表达式
36 1
|
16天前
|
IDE 开发工具 开发者
Kotlin教程笔记(6) - 函数与Lambda表达式
本系列教程详细讲解了 Kotlin 语法,适合需要深入了解 Kotlin 的开发者。若需快速学习 Kotlin,建议参考“简洁”系列教程。本文重点介绍了 Kotlin 中的函数与 Lambda 表达式,包括函数定义、匿名函数、Lambda 表达式的简化及调用方法等内容。通过实例演示了如何在实际开发中灵活运用这些概念。
22 1