31DaysOfKotlin - Day4—when表达式

内容总结

when不仅仅的switch代替品,而是一个重大的升级版。when可以是一个语句,也可以是一个表达式,这就决定了他的用法很强大,很灵活,意味着驾驶它需要更多的学习成本。
when 将它的参数与所有的分支条件顺序比较,直到某个分支满足条件。
when被当做表达式, 符合条件的分支的值就是整个表达式的值(当分支是个代码块是,代码块的最后一行表达式的值就是整个表达式的值)

知识要点

可以没有参数

所有的分支条件都是简单的布尔表达式,而当一个分支的条件为真时则执行该分支:

when {
    x.isOdd() -> print("x is odd")
    x.isEven() -> print("x is even")
    else -> print("x is funny")
}
// if 的写法是
if (x.isOdd()) {
	print("x is odd")
} else if (x.isEven()) {
	xxxxx
} else {
   xxxxx
}

分支条件可以多个

多个分支条件用“,”分隔

when (x) {
    0, 1 -> print("x == 0 or x == 1")
    else -> print("otherwise")
}

分支条件可以是表达式

分支条件除了是常量,也可以是表达式(表达式的值是布尔值就可以)

when (x) {
	in 1..10 -> print("x is in the range") // 检测一个值在(in)或者不在(!in)一个区间或者集合中
    in validNumbers -> print("x is valid")
    !in 10..20 -> print("x is outside the range")
    parseInt(s) -> print("s encodes x")
    is String -> x.startsWith("prefix")
    is String -> x.startsWith("prefix") //由于智能转换,你可以访问该类型的方法与属性而无需任何额外的检测。
    else -> print("s does not encode x")
}

参考文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值