当前位置: 首页 > 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}符合法定结婚年龄了")
}
http://www.dtcms.com/a/127047.html

相关文章:

  • 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分组、查询分享
  • 人工智能训练师-个人学习记录
  • OpenCV 图形API(30)图像滤波-----腐蚀操作函数erode()
  • Linux——进程替换(exec)
  • Python----概率论与统计(随机变量,离散概率分布,连续概率分布,期望,方差,标准差,多维随机变量)
  • 通付盾风控智能体(RiskAgent): 神烦狗(DOGE)
  • OpenCV 表情识别
  • AI Agent开发大全第二十五课-用本地模型iopaint开发一个超酷的AI图片处理Agent(下)
  • Redis 字符串(String)详解
  • Android studio2024的第一个安卓项目
  • 使用Python建立双缝干涉模型
  • Linux:shell运行原理+权限