kotlin入门学习之let、with、apply、run

kotlin入门学习之let、with、apply、run区别与简单使用:

let()

let()的定义是默认方法中it参数就是调用的对象本身,该方法的返回值是最后一行或者是return内容。

示例 :
	var str = Student().let {
         it.id = 1001
         it.name = "张三"
         "你好,世界"
         1002
     }
     Log.i("initView","输出内容:$str")
     // 运行结果 
     //I/initView: 输出内容:1002

apply

对象调用他自己的apply函数,在这个函数范围内可以任意调用公有的方法跟属性,这个函数返回的是这个对象本身

示例 :
        var obj = Student().apply {
            this.id = 1005
            this.name = "李四"
            "Hello word"
        }
        Log.i("initView","输出内容:$obj")
        // 运行结果
        /**
            输出内容:Student{
    		id:1005
    		name:李四
    		}
		*/

with

with()是一个单独的函数,传入一个对象,在函数范围中可以调用该对象的公有属性和方法有点类是apply,但是他返回值是最后一行或者是return的内容有点类是let函数

示例 :
        var strs = with(Student()){
            this.id = 1006
            this.name = "王五"
            this.getSchoolName()
            "Hello word"
        }
        Log.i("initView","输出内容:$strs")
        // 运行结果
        // 输出内容:Hello word

run

run的使用类似apply,但是函数的返回值是 最后一行或者是return的内容有点类是let函数

示例 :
        var students = Student().run {
            this.id = 1007
            this.name = "麻六"
            "Hello Word"
        }
        Log.i("initView","输出内容:$students")
        // 运行结果
        // 输出内容:Hello word

最后总结:

函数名参数返回值
letit返回函数最后一行或者是return的内容
apply无参数返回对象本身
with无参数返回函数最后一行或者是return的内容
run无参数返回函数最后一行或者是return的内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kotlin中的let是一个拓展函数,它可以更优雅地处理可空变量问题。当我们使用let函数时,它会将调用它的对象作为参数传递给lambda表达式,并且在lambda表达式中可以对该对象进行操作。这样可以避免对可空变量进行null检查,提高代码的可读性和简洁性。同时,let函数还可以在链式调用中使用,使代码更加清晰。 具体来说,let函数有以下特点: 1. 它将调用它的对象作为lambda表达式的参数。 2. 在lambda表达式中可以对该对象进行操作。 3. let函数的返回值是lambda表达式的返回值。 通过使用let函数,我们可以在处理可空变量时,避免使用繁琐的null检查,提高代码的可读性和简洁性。同时,let函数还可以与其他拓展函数一起使用,例如applyrun等,以便更灵活地处理对象。 总结来说,Kotlin中的let函数是一个非常实用的拓展函数,可以更优雅地处理可空变量问题,并且在链式调用中提高代码的可读性和简洁性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [十三、Kotlin进阶学习:内联函数let、also、with、runapply的用法。](https://blog.csdn.net/weixin_43936741/article/details/125996295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Kotlin要点之一 | let](https://blog.csdn.net/jxq1994/article/details/103007338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值