Android第一行代码——快速入门 Kotlin 编程(3.7 Kotlin课堂:标准函数和静态方法)

本文介绍了Kotlin课堂中的标准函数与静态方法,重点讲解了with、run和apply函数的使用,以及如何在Kotlin中定义静态方法。通过示例展示了这些函数如何简化代码,并提到了静态方法在Kotlin中的实现方式,包括注解和顶层方法。
摘要由CSDN通过智能技术生成

目录

3.7        Kotlin课堂:标准函数和静态方法

3.7.1        标准函数 with、run 和 apply

3.7.2        定义静态方法


3.7        Kotlin课堂:标准函数和静态方法

        现在我们即将进入本书首次的 Kotlin 课堂,之后的几乎每一章中都会有这样一个环节。虽说目前你已经可以上手 Kotlin 编程了,但我们只是在第 2 章中学习了一些 Kotlin 的基础知识而已,其实还有许多的高级技巧并没有涉猎。因此每章的 Kotlin 课堂里,我都会结合所在章节的内容,拓展出更多Kotlin 的使用技巧,这将会是你提升自己 Kotlin 水平的绝佳机会。

3.7.1        标准函数 with、run 和 apply

        Kotlin 的标准函数指的是 Standard.kt 文件中定义的函数,任何 Kotlin 代码都可以自由地调用所有的标准函数。

        虽说标准函数并不多,但是想要一次性全部学完还是比较吃力的,因此这里我们主要学习几个最常用的标准函数。

        首先在上一章中,我们已经学习了 let 这个标准函数,它的主要作用就是配合 ? . 操作符来进行辅助判空处理,这里就不再赘述了。

下面我们从 with 函数开始学起。with 函数接收两个参数:第一个参数可以是一个任意类型的对象,第二个参数是一个 Lambda 表达式。with 函数会在 Lambda 表达式中提供第一个参数对象的上下文,并使用 Lambda 表达式中的最后一行代码作为返回值返回。示例代码如下:

val result = with(obj) { 
    // 这里是obj的上下文
    "value" // with函数的返回值
} 

        那么这个函数有什么作用呢?它可以在连续调用同一个对象的多个方法时让代码变得更加精 简,下面我们来看一个具体的例子。

        比如有一个水果列表,现在我们想吃完所有水果,并将结果打印出来,就可以这样写:

fun main(){
    val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
    val builder = StringBuilder()
    builder.append("Start eating fruits.\n")
    for (fruit in list) {
        builder.append(fruit).append("\n")
    }
    builder.append("Ate all fruits.")
    val result = builder.toString()
    println(result)
}

        这段代码的逻辑很简单,就是使用 StringBuilder 来构建吃水果的字符串,最后将结果打印出 来。如果运行一下上述代码,那么一定会得到如 图3.45 所示的打印结果。

图3.45        吃水果字符串的打印结果

        仔细观察上述代码,你会发现我们连续调用了很多次 builder 对象的方法。其实这个时候就可 以考虑使用 with 函数来让代码变得更加精简,如下所示:

fun main(){

    val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
    val result = with(StringBuilder()){
        append("Start eating fruits.\n")
        for (fruit in list){
            append(fruit).append("\n")
        }
        append("Ate all fruits.")
        toString()
    }
    println(result)
}

        这段代码乍一看可能有点迷惑性,其实很好理解。首先我们给 with

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值