Kotlin实现Java的三元条件运算

在Kotlin没有类似Java的三元条件运算:

a ? b : c

在Kotlin有几种等效的方法:

if

val r =if (a) b else c

when

val r = when(a) {
    true -> b
    false -> c
}

Kotlin的takeIf

val r = b.takeIf { a } ?: c

如果c为null,可以简化为

val = b.takeIf { a }

版权声明:著作权归作者所有。

相关推荐

Pandas对应SQL的in和not in实现

在Pandas提供了pd.isin(),使用它可以实现SQL的in和not in。not in 对应于:~a.isin(b) 示例:假如有以下dataframe数据,它包含了列data如下:>>> df   data 0   a 1   b 2 &nb

Kotlin:流程控制之条件语句 if 和 when

在Kotlin有两种用于判断条件的语句if 和when。if在Kotlin,if既可以是条件语句,仅仅用作条件判断,还可以是条件表达式,表达式会返回一个值。传统的条件判断if语句var max = a  if (a < b) max = b if-elsevar max:&

Python : 数值以及数值运算

数值类型Python的数值类型包括:整数int ,浮点数float和复数。其他的数值类型包括:Decimal和分数Fraction。int:整数不限精度float:Python里的浮点数使用C语言的double实现,其精度由运行的系统决定,可以使用sys.float_info查看精度信息。复数:复数的虚数部分有j或J表示,如1+2j。其中实数和虚数的数值部分使用浮点数表示,它们可以使用z

Android使用CountDownTimer实现倒计时示例(Kotlin)

CountDownTimer是一个抽象类,它的构造函数为CountDownTimer(long millisInFuture, long countDownInterval) millisInFuture:倒计时的总时间,从调用start()方法开始。毫秒数countDownInterval:倒计时的时间间隔。毫秒数。CountDownTimer主要有四个方法:syn

Java 8 Stream API转换到Kotlin集合API

Kotlin提供的集合操作的API相对Java 8 Stream的API简洁很多。下面是Java 8 Stream API转换到Kotlin集合API。 映射属性聚合为列表// Java:   List<String> names = users.stream().m

Java Objects.hash()与自己实现的hashCode()比较

Java 7新增了Objects类,它为对象提供了一些便捷的静态方法,如equals(),hashCode(),hash(),compare(),toString()等等。这里比较一下Objects.hash()与自己实现的hashCode()。传统实现的hashCode@Override public int hashCode() {  &nbs