当前位置: 首页 > article >正文

kotlin内联函数——takeIf和takeUnless

1.takeIf

当对一个对象调用takeIf时,如果对象满足给定的判断条件,则返回该对象;否则,返回null。因此,takeIf是对单个对象进行过滤的函数。例如,

class User {
            var name: String? = null
            var age = 99
            fun set(ageParam: Int) {
                age = ageParam
            }

            fun get(): Int {
                return age
            }
        }     


 val user = User().takeIf {
            it.age == 99
        }
Log.d(TAG,"user对象:$user")

2.takeUnless

takeUnless的逻辑与takeIf相反。当对一个对象调用takeUnless时,如果对象满足给定的判断条件,则返回null;否则,返回该对象。例如,

class User {
            var name: String? = null
            var age = 99
            fun set(ageParam: Int) {
                age = ageParam
            }

            fun get(): Int {
                return age
            }
        }  


val user = User().takeUnless {
            it.age == 999
        }
Log.d(TAG,"user对象:$user")

注意:在takeIf和takeUnless函数调用后,如还有其他调用,请在调用时用?.判空。因为两者返回的对象可能为null。例如,

class User {
            var name: String? = null
            var age = 99
            fun set(ageParam: Int) {
                age = ageParam
            }

            fun get(): Int {
                return age
            }
        }  


Log.d(TAG, "User#age:${
                User().takeUnless {
                    it.age == 999
                }?.age
            }"
        )

推荐文章

Scope functions | Kotlin Documentation


http://www.kler.cn/a/516591.html

相关文章:

  • 大华相机DH-IPC-HFW3237M支持的ONVIF协议
  • MySQL训练营-慢查询诊断问题
  • 【LeetCode】--- MySQL刷题集合
  • 嵌入式知识点总结 操作系统 专题提升(一)-进程和线程
  • 【C++图论 并集查找】2492. 两个城市间路径的最小分数|1679
  • 第18个项目:微信开发入门:获取access_token的Python源码
  • java读取设置pdf属性信息
  • 二分查找题目:快照数组
  • Docker Hub 全面解析及应对策略
  • 2【选修】再探宝可梦、数码宝贝分类器
  • 组播IGMP协议报文介绍
  • QT6 + CMAKE编译OPENCV3.9
  • 1.23寒假作业
  • linux中关闭服务的开机自启动
  • “上门按摩” 小程序开发项目:基于 SOP 的全流程管理
  • C语言文件操作:标准库与系统调用实践
  • 【Linux】其他备选高级IO模型
  • IPhone16 Plus 设备详情
  • 详解:TCP/IP五层(四层)协议模型
  • 23.日常算法
  • CVPR 2024 无人机/遥感/卫星图像方向总汇(航空图像和交叉视角定位)
  • pandas基础:文件的读取和写入
  • leetcode——矩阵置零(java)
  • 亚马逊新店铺流量怎么提升?自养号测评新趋势
  • rabbitmq单机与集群模式的部署
  • 刷题笔记 贪心算法-1 贪心算法理论基础