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

kotlin的takeIf使用

takeIf用于判断指定对象是否满足条件,满足就返回该对象自身,不满足返回null。因为可以返回对象自身,所以可以用作链式调用,以简化代码,又因takeIf可能返回空,所以常常和let结合使用,示例如下:

有一个Woman类,如下:

data class Woman(val name: String, val age: Int)

创建一个Woman对象:

val woman: Woman? = Woman("Lily", 21)

然后有个需求是判断一个女性是否达到法定结婚年龄,如果达到了的话就打印一个消息到控制台。示例代码如下:

woman?.takeIf { it.age >= 20 }?.let { println("${it.name}符合法定结婚年龄了") }

在一些条件比较简单的情况下,链式调用一行搞定,比较简洁,对比原始方式需要3行,如下:

if (woman != null && woman.age >= 20) {
    println("${woman.name}符合法定结婚年龄了")
}

相关文章:

  • netty-socketio + springboot 消息推送服务
  • matlab实现的InSAR图像Goldstein滤波
  • 自动驾驶“无图化”开源框架争议:技术革新还是行业风险?
  • 3.1.3.4 Spring Boot使用使用Listener组件
  • 住建厅八大员建筑资料员证备考题库
  • 配置过编译选项,也有keystore文件,但是Android Studio签名apk失败。
  • 数据库管理工具实战:IDEA 与 DBeaver 连接 TDengine(二)
  • 人工智能100问☞第2问:机器学习的核心原理是什么?
  • 基于SSM的校园美食交流系统
  • RocketMQ深度百科全书式解析
  • CXL3.0 CDAT(Coherent Device Attributes Table)
  • VMware虚拟机Ubuntu磁盘扩容
  • 博途 TIA Portal之1200做从站与汇川EASY的TCP通讯
  • windows10系统下找不到microbit指南方案
  • XSS 防御转义规则笔记
  • Unity6下架中国区,团结引擎接棒:这是分裂,还是本地化的开始?
  • 关于深度学习局部视野与全局视野的一些思考
  • 网关与路由器知识点
  • Navicat分组、查询分享
  • 人工智能训练师-个人学习记录
  • 为什么要立刻做网站/广州网络营销
  • 做app还是做网站/西安seo培训学校
  • 招标网哪个网站信息可靠/国际时事新闻2022最新
  • vue做网站首页/郑州网络推广
  • 网站建设行业的趋势/百度平台营销
  • 手机商城网站案例/百度发作品入口在哪里