写在前面:
如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!
【Kotlin语言学习】系列文章
第一章 《认识Kotlin》
第二章 《数据类型》
第三章 《数据容器》
第四章 《方法》
第五章 《Lambda表达式与条件控制》
第六章 《泛型》
一、Lambda表达式
在Kotlin中,Lambda表达式是一种轻量级的匿名函数,它可以作为参数传递给其他函数。Lambda表达式的语法形式如下。
{ 参数列表 -> 函数体 }
其中,参数列表是可选的,函数体可以是一个表达式或者代码块。Lambda表达式的类型是函数类型,可以通过声明一个变量或参数的方式来存储它。
Lambda表达式的主要优点之一是它的简洁性和灵活性。它允许在需要函数作为参数的地方以一种简洁、直观的方式来定义函数行为。Lambda表达式常用于Kotlin中的函数式编程,例如在集合操作中使用map
、filter
、reduce
等高阶函数时经常会用到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的函数,形参设有两个,分别是number
和check
,其中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,一个永远在学习中的探索者,关注我,让我们一起进步!