使用什么工具什么步骤完成网站的设计与建设/软文免费发布平台

使用什么工具什么步骤完成网站的设计与建设,软文免费发布平台,怎么自己做网站的优化,如何建设网站的目录结构层掌握 when 的灵活运用,告别繁琐的 if-else 链 以下是 Kotlin 中 when 表达式的 12种核心用法 的全面总结,涵盖基础到高级场景,并附带实用示例: 一、基础用法 1. 替代 Java 的 switch-case when (x) {1 -> println("一&qu…

掌握 when 的灵活运用,告别繁琐的 if-else 链
以下是 Kotlin 中 when 表达式的 12种核心用法 的全面总结,涵盖基础到高级场景,并附带实用示例:
一、基础用法
1. 替代 Java 的 switch-case

when (x) {1 -> println("一")2 -> println("二")else -> println("其他")
}

2. 多条件合并

when (x) {1, 2 -> println("一或二")in 3..5 -> println("三到五")else -> println("其他")
}

二、高级匹配
3. 类型检查(智能转换)

when (obj) {is String -> println(obj.length) // 自动转为Stringis Int -> println(obj.plus(1))   // 自动转为Intelse -> println("未知类型")
}

4. 范围匹配

when (score) {in 90..100 -> "A"in 80 until 90 -> "B"!in 60..79 -> "不及格" else -> "C"
}

5. 函数调用作为分支条件

when {x.isOdd() -> println("奇数")x.isEven() -> println("偶数")else -> println("非整数")
}

三、特殊场景
6. 无参数形式(布尔表达式链)

when {network.isConnected() -> fetchData()cache.isValid() -> showCachedData()else -> showError()
}

7. 枚举匹配

enum class Color { RED, GREEN, BLUE }when (color) {Color.RED -> println("红色")Color.GREEN -> println("绿色")Color.BLUE -> println("蓝色")
}

8. 解构声明

when (val (x, y) = point) {(0, 0) -> println("原点")(1, 1) -> println("对角线点")else -> println("其他坐标")
}

四、返回值特性
9. 作为表达式返回结果

val result = when (input) {"yes" -> "同意""no" -> "拒绝"else -> "无效输入"
}

10. 配合 let 处理可空变量

val message = nullableStr?.let { when (it.length) {0 -> "空字符串"in 1..10 -> "短文本"else -> "长文本"}
} ?: "变量为null"

五、实用技巧
11. 与 sealed class 配合(状态机)

sealed class Result {data class Success(val data: String) : Result()data class Error(val msg: String) : Result()
}when (result) {is Result.Success -> showData(result.data)is Result.Error -> showError(result.msg)
}

12. 替代 if-else 链

// 传统写法
if (x == 1) {// ...
} else if (x in 2..5) {// ...
} else {// ...
}// Kotlin 优雅写法
when (x) {1 -> { /* ... */ }in 2..5 -> { /* ... */ }else -> { /* ... */ }
}

六、注意事项
穷尽性检查:当作为表达式时,必须包含 else 分支(枚举或密封类除外)

执行顺序:按从上到下匹配,首个满足条件的分支执行后即退出

性能优化:编译器会将密集的整型匹配优化为 跳转表

掌握这些用法后,when 可以替代绝大多数条件判断场景,使代码更简洁安全。建议在 Android 开发中优先使用 when 替代复杂的 if-else 嵌套。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE4学习笔记 FPS游戏制作26 UE中的UI

文章目录 几个概念创建一个UI蓝图添加UI获取UI的引用 切换设计器和UI蓝图将UI添加到游戏场景锚点轴点slotSizeToContent三种UI数据更新方式函数绑定属性绑定事件绑定 九宫格分割图片 几个概念 UMG:UE的UI编辑器 slate UI: UE的UI的编辑语言 创建一个UI蓝图 右键用…

头条项目的文章延迟发布功能

最近做的头条项目其中有个功能是创作者发表的文章可以设置在未来某个时间发表,在实现这个功能的时候就在想该怎么实现呢?刚开始想的是利用Spring的定时任务定时的去数据库中查询,可以这个查询频率该怎么设置,每次从数据库中需要查…

Celery 全面指南:Python 分布式任务队列详解

Celery 全面指南:Python 分布式任务队列详解 Celery 是一个强大的分布式任务队列/异步任务队列系统,基于分布式消息传递,专注于实时处理,同时也支持任务调度。本文将全面介绍 Celery 的核心功能、应用场景,并通过丰富…

OpenHarmony NativeC++应用开发speexdsp噪声消除案例

随着5.0的版本的迭代升级,笔者感受到了开源鸿蒙前所未有大的版本更替速度。5.0出现了越来越多的C API可以调用,极大的方便了native c应用的开发。笔者先将speexdsp噪声消除的案例分享,老规矩,还是开源!!&am…

【机器学习】什么是决策树?

什么是决策树? 决策树是一种用于分类和回归问题的模型。它通过一系列的“决策”将数据逐步分裂,最终得出预测结果。可以把它看作是一个“树”,每个节点表示一个特征的判断,而每个分支代表了可能的判断结果,最终的叶子…

CentOS 7安装 mysql

CentOS 7安装 mysql 1. yum 安装 mysql 配置mysql源 yum -y install mysql57-community-release-el7-10.noarch.rpm安装MySQL服务器 yum -y install mysql-community-server启动MySQL systemctl start mysqld.service查看MySQL运行状态,运行状态如图&#xff…

docker安装,镜像,常用命令,Docker容器卷,Docker应用部署,自定义镜像,Docker服务编排,创建私有仓库

1.为什么使用docker 如果开发环境和测试环境的允许软件版本不一致,可能会导致项目无法正常启动 把环境和项目一起打包发送给测试环境 1.1docker的概念 开源的应用容器引擎,完全使用沙箱机制,相互隔离,容器性能开销极低 一种容…

Manus的开源替代者之一:OpenManus通用AI智能体框架解析及产品试用

引言 在AI智能体领域,Monica团队近期发布的Manus被誉为全球首个通用型AI智能体。该项目推出后迅速爆红,邀请码一号难求,随之而来的是各路开发者快速构建了众多类似的开源替代方案。其中,MetaGPT团队的5位工程师仅用3小时就开发完…

HDR(HDR10/ HLG),SDR

以下是HDR(HDR10/HLG)和SDR的详细解释: 1. SDR(Standard Dynamic Range,标准动态范围) • 定义:SDR是传统的动态范围标准,主要用于8位色深的视频显示,动态范围较窄&…

uni-app页面怎么设计更美观

顶部 页面最顶部要获取到手机设备状态栏的高度&#xff0c;避免与状态栏重叠或者被状态栏挡住 // 这是最顶部的父级容器 <view :style"{ paddingTop: ${statusBarHeight extraPadding}px }">.... </view> export default {data() {return {statusBarH…

江西核威环保科技:打造世界前沿的固液分离设备高新企业

随着市场经济的不断发展&#xff0c;消费者的需求越来越大&#xff0c;为了更好的服务广大新老客户&#xff0c;作为知名品牌的“江西核威环保科技有限公司&#xff08;以下简称江西核威环保科技&#xff09;”&#xff0c;将坚持以“服务为企业宗旨&#xff0c;全力打造世界前…

PTA 1097-矩阵行平移

给定一个&#x1d45b;&#x1d45b;nn的整数矩阵。对任一给定的正整数&#x1d458;<&#x1d45b;k<n&#xff0c;我们将矩阵的奇数行的元素整体向右依次平移1、……、&#x1d458;、1、……、&#x1d458;、……1、……、k、1、……、k、……个位置&#xff0c;平移…

C++蓝桥杯实训篇(一)

片头 嗨~小伙伴们&#xff0c;大家好&#xff01;现在我们来到实训篇啦~本篇章涉及算法知识&#xff0c;比基础篇稍微难一点&#xff0c;我会尽量把习题讲的通俗易懂。准备好了吗&#xff1f;咱们开始咯&#xff01; 第1题 递归实现指数型枚举 我们先画个图~ 从图中&#xff…

CentOS(最小化)安装之后,快速搭建Docker环境

本文以VMware虚拟机中安装最小化centos完成后开始。 1. 检查网络 打开网卡/启用网卡 执行命令ip a查看当前的网络连接是否正常&#xff1a; 如果得到的结果和我一样&#xff0c;有ens网卡但是没有ip地址&#xff0c;说明网卡未打开 手动启用&#xff1a; nmcli device sta…

软考《信息系统运行管理员》- 5.3 信息系统数据资源备份

文章目录 数据资源备份类型按数据备份模式分按备份过程中是否可接收用户响应和数据更新分按数据备份策略分按备份的实现方式分按数据备份的存储方式分 常用备份相关技术磁盘阵列技术双机热备 某公司数据备份管理制度实例 数据资源备份类型 数据备份系统由硬件和软件两部分组成…

H3CNE综合小实验之电视机

H3CNE综合小实验之电视机 一、实验拓扑图 二、实验要求 按照图示配置IP地址&#xff1b;按照图示区域划分配置对应的动态路由协议&#xff1b;在R7上配置dhcp服务器&#xff0c;能够让pc可以获取IP地址&#xff1b;将所有环回⼝宣告进ospf中&#xff0c;将环回⼝7宣告进rip中…

Axios企业级封装实战:从拦截器到安全策略!!!

&#x1f680; Axios企业级封装实战&#xff1a;从拦截器到安全策略 &#x1f527; 核心代码解析 // 创建Axios实例 const service axios.create({baseURL: api, // &#x1f310; 全局API前缀timeout: 0, // ⏳ 永不超时&#xff08;慎用&#xff01;&#xff09;withCrede…

DCAT模型:双交叉注意力革新医学影像诊断,AUC 99.75%

一、研究背景&#xff1a;医学影像诊断的挑战 在医学影像领域&#xff08;如X光、OCT&#xff09;&#xff0c;精准分类疾病直接影响患者治疗决策。传统深度学习模型存在两大痛点&#xff1a; 1.过度自信&#xff1a;即使图像模糊或存在噪声&#xff0c;模型仍可能给出高…

2.2.2 Spark单机版环境

本文介绍了如何搭建和使用Spark单机版环境。首先&#xff0c;确保安装配置好JDK&#xff0c;然后从群共享下载Spark安装包并上传至云主机的/opt目录。接着&#xff0c;解压到/usr/local目录并配置环境变量&#xff0c;通过spark-submit --version验证安装成功。在使用Spark单机…

SAP消息号类型(E/I/W)的定制

比如这样的M8088的标准的消息号&#xff0c;希望变更消息类型&#xff0c;查询之后&#xff0c;网上提供的消息&#xff0c;都是SE91,OMRM&#xff0c;OBA5之类的消息。事实上&#xff0c;SE91是不能变更消息类型的。 而在OMRM界面&#xff0c;只看到有限的几个消息号。 原来&a…