梳理学习Kotlin,when表达式的用法
覆盖案例
var maxSurfaceTempIntK: Any = 100fun calcNum() = 600when(maxSurfaceTempIntK) {700 -> println("Equal 700")0, 1 , 2 -> println("Equal 0, or 1, etc...")in 20..300 -> println("num in range")!in 300..400 -> println("num not in range")calcNum() -> println("result of fucntion")is Int -> println("boolean or type")else -> println("default branch")
}val ans = when(maxSurfaceTempIntK) {calcNum() -> calcNum() * 10else -> -1
}println("ans = $ans")
反编译看一下JVM平台下的实现
if (Intrinsics.areEqual(var2, 700)) {} else if (!Intrinsics.areEqual(var2, 0) && !Intrinsics.areEqual(var2, 1) && !Intrinsics.areEqual(var2, 2)) {byte var5 = 20;if (CollectionsKt.contains((Iterable)(new IntRange(var5, 300)), var2)) {} else {short var6 = 300;if (!CollectionsKt.contains((Iterable)(new IntRange(var6, 400)), var2)) {} else if (Intrinsics.areEqual(var2, ((Practice)this).calcNum())) {} else if (var2 instanceof Integer) {} else {}}
} else {var3 = "Equal 0, or 1, etc...";System.out.println(var3);
}var2 = ((Practice)this).maxSurfaceTempIntK;
this.ans = Intrinsics.areEqual(var2, ((Practice)this).calcNum()) ? ((Practice)this).calcNum() * 10 : -1;
when表达式没有使用Java switch的语法糖,转换为嵌套if…elseif…else的语法。
在判断是否为1,2,3的时候,编译器做了if !else 的操作。
带返回值的when, 会被转换为Java三目表达式。
梳理学习Kotlin,when表达式的用法相关推荐
- 梳理学习Kotlin,Function的用法
示例: main函数 fun main(args: Array<String>) {} 完整函数 fun fib(n: Int): Long {return if (n < 2) 1 ...
- 学习Kotlin(五)函数与Lambda表达式
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
- 学习Kotlin(二)基本语法
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
- 如何学习kotlin?Kotlin基础知识快速入门
一 概述 Android 1.5系统中Google 引入了NDK功能,支持使用C和C++语言来进行一些本地化开发. 17年官宣kotlin为安卓一级开发语言:所以对于安卓开发者,学习kotlin是必须 ...
- kotlin条件表达式
2019独角兽企业重金招聘Python工程师标准>>> if 表达式 在 Kotlin 中,if 是带有返回值的表达式.因此Kotlin没有三元运算符(condition ? the ...
- 为什么应该学习Kotlin
Mark Platvoet是一名热衷于研究新的编程语言.技术和方法的Java和.NET开发者.最近,他为JetBrains推出的新语言Kotlin所吸引,并于近日撰文介绍了这门颇具生产力的语言. \\ ...
- 学习Kotlin(八)其他技术
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
- 学习Kotlin(七)反射和注解
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
- 学习Kotlin(六)扩展与委托
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
最新文章
- Cocostudio 1.6 下载地址
- python Demo 01 爬取大学名称
- Apache工具包方法——Hex.encodeHexString(byte[] data)源码浅析
- 巴斯勒相机外部触发接线_2021新疆欧姆龙相机回收童嫂无欺
- 浏览器和node的eventLoop的区别
- mysql.5.7 linux_mysql 5.7 linux下的安装
- 《中国人工智能学会通讯》——4.40 什么是类人概念学习?
- java queue代码_java代码实现顺序队列
- 使用FlashCS6制作cocos2d-x动作脚本的思路整理
- 不使用80,443,端口,域名还需要备案吗?域名没有备案应该怎么选服务器。
- EVE LOM正式官宣杨洋成为品牌代言人
- Borland 26年风雨路
- 正则表达式语法及常用实例
- C#模拟银行转账系统
- 3dmax入门教程(三) 初步认识创建面版、基础模型创建 建模
- 985博士生盲审未过!学界泰斗喊冤后决定带他去港科大重读博士?
- 如何用神经网络预测数据,人工神经网络分析方法
- APP界面设计:移动缺省页如何设计才会内容“丰富友好”?
- 新的一年,总想说点啥----------------------回家篇
- B6(B6AC)充电器中文简要说明书
热门文章
- java wasm_Wasm介绍之2:指令集和栈
- BI 可视化工具不只有视图,还有报表
- java.lang.SecurityException: Not allowed to change Do Not Disturb state - 免打扰模式异常
- 最简单的Word公式编号方法
- C#语言实例源码系列-实现ComboBox变色
- manjaro文件不是一个有效的图表主题_Manjaro安装套路
- WebStorm调试javaScript
- Creator打包oppo rpk小游戏黑屏问题
- Win10+GTX1050Ti安装CUDA和cuDNN的记录
- 自考计算机网络工程本科考哪些科,自考网络工程本科考试科目有哪些