Kotlin基础六之再谈'if' 'when'

Kotlin基础六之再谈’if’ ‘when’


  博主之前的文章提到过if是个具有返回值的表达式而不是一个statement。所以,在kotlin中,函数还可以这么写:

fun eval(e: Any): Int =
        if (e is Int) {
            e.toInt()
        } else {
           throw IllegalArgumentException("Unknown type.")
        }

fun main(args: Array<String>) {
    println(eval(100))
    println(eval("200"))
}
//result:
> 100
> Exception in thread "main" java.lang.IllegalArgumentException: Unknown type.

  看出来什么了吗?函数没有return语句也能返回值,原因就是因为if是个带有值的表达式。
  我们说when可以替代if-else-if链,因此,这么做也是可以的:

fun eval(e: Any): Int =
        when(e) {
            is Int -> e.toInt()
            else -> throw IllegalArgumentException("Unknown type.")
        }

  在kotlin中已经没有了三目运算符,而是用if (a > b) a else b来替代了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值