您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页【教程】Kotlin语言学习笔记(五)——Lambda表达式与条件控制

【教程】Kotlin语言学习笔记(五)——Lambda表达式与条件控制

来源:意榕旅游网


【Kotlin语言学习】系列文章







一、Lambda表达式

在Kotlin中,Lambda表达式是一种轻量级的匿名函数,它可以作为参数传递给其他函数。Lambda表达式的语法形式如下。

{ 参数列表 -> 函数体 }

其中,参数列表是可选的,函数体可以是一个表达式或者代码块。Lambda表达式的类型是函数类型,可以通过声明一个变量或参数的方式来存储它。

Lambda表达式的主要优点之一是它的简洁性和灵活性。它允许在需要函数作为参数的地方以一种简洁、直观的方式来定义函数行为。Lambda表达式常用于Kotlin中的函数式编程,例如在集合操作中使用mapfilterreduce等高阶函数时经常会用到Lambda表达式。

下面是简单的示例。

// 自定义函数:使用Lambda表达式来判断一个数字是否为偶数
fun isEven(number: Int, check: (Int) -> Boolean): Boolean {
    return check(number)
}

fun main() {
    val number = 10

    // 使用Lambda表达式作为参数,判断一个数字是否为偶数
    val result = isEven(number) { it % 2 == 0 }

    if (result) {
        println("$number 是偶数")
    } else {
        println("$number 是奇数")
    }
}

阅读示例代码,可以看到首先自定义的isEven函数中就使用了Lambda表达式,其函数定义逻辑为定义一个名为isEven的函数,形参设有两个,分别是numbercheck,其中number要求传入的是整型变量,而check则是一个函数,这个函数并没有通过传统方式定义,而是通过Lambda表达式,表示传入一个整型变量,返回一个布尔值,这个check函数在函数内部使用,作为返回值,定义函数返回值类型为布尔值——整个函数定义表达式的含义就是输入整型变量,返回一个布尔值。

而在接下来的输出函数中,设定number变量为10,使用isEven函数令number返回一个布尔值,这里又使用了一个Lambda表达式来判断返回的值是否除以2无余数,是则为真,否则为假,接着就使用了一个if判断语句将偶数判断结果打印出来。

可以看到,在Lambda表达式中->左边是参数列表,而右边则是Lambda函数的具体函数和操作。

其中要注意的是,it在Lambda表达式中只有参数仅有一个的时候才可以使用;同时,it不作为关键字,却同样可以在调用变量(比如函数定义)中作为单个变量的隐式名称,从而简洁语句编写。

二、条件控制

条件控制语句在每门编程语言中都是必不可少的部分,在Kotlin语言中是使用if-else语句和when语句来实施条件控制。

那么设计一个简单的逻辑,要求输入两个数字,输出较大的那一个。

如果使用if语句,则设计的语句可以是这样。

fun main() {
    val x = 10
    val y = 20

    // 使用 if-else 控制结构
    if (x > y) {
        println("x 大于 y")
    } else if (x < y) {
        println("x 小于 y")
    } else {
        println("x 等于 y")
    }
}

同其他语言的if语句一样,使用if关键字设定条件,同时else if设置第二个条件,剩余情况则在else下输出。

而如果使用when判断语句设计,则是这样的。

fun main() {
    val x = 10
    val y = 20

    // 使用 when 表达式进行条件控制
    when {
        x > y -> println("x 大于 y")
        x < y -> println("x 小于 y")
        else -> println("x 等于 y")
    }

    // 使用 when 表达式带参数的形式进行条件控制
    when (x) {
        10 -> println("x 等于 10")
        20 -> println("x 等于 20")
        else -> println("x 既不等于 10 也不等于 20")
    }
}

可以看到,如果使用when语句对于多结果可能性的判断情况更为合适。->左边是判断条件,右边则是满足该条件的情况下执行的逻辑;与if语句一样,也有else关键字代表剩余判断情况。


我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务