我爱编程

Kotlin 分支

2018-07-26  本文已影响18人  ChenME

Kotlin 分支


1. if 分支表达式

在 Kotlin 中,由于没有了三目运算符(?:),所以就有了分支表达式,其效果可以替代三目运算符,甚至效果会更优

下面举个例子:
在程序开发中,一般分为开发环境、测试环境、正式环境,在这3个环境中会对应3个不同的接口地址,下面来模拟一下:

const val ENVIRONMENT_DEV = 2 // 开发环境
const val ENVIRONMENT_TEST = 1 // 测试环境
const val ENVIRONMENT_ONLINE = 0 // 正式环境

val projectEnvironment = ENVIRONMENT_DEV

val PATH_HOST = if (ENVIRONMENT_ONLINE == projectEnvironment) {
    "http://api.online.com"
} else if (ENVIRONMENT_TEST == projectEnvironment) {
    "http://api.test.com"
} else {
    "http://api.dev.com"
}

// http://api.dev.com
final String PATH_HOST = ENVIRONMENT_ONLINE == projectEnvironment ?
        "http://api.online.com" :
        (ENVIRONMENT_TEST == projectEnvironment ?
                "http://api.test.com" :
                "http://api.dev.com");

2. when 分支语句(表达式)

  1. 分支语句
val number1 = 10
val number2 = 10
when (number1) {
    is Int -> println("$number1 是一个 Int")
    number2 -> println("$number1 与 number2 的值相等")
    in 1..100 -> println("$number1 在 [1,100]")
    !in 1..100 -> println("$number1 不在 [1,100]")
    else -> println("以上条件都不满足!")
} // 10 是一个 Int
  1. when 不仅限于语句,它也可以用到表达是上面:
val PATH_HOST = when (projectEnvironment) {
    ENVIRONMENT_DEV -> "http://api.online.com"
    ENVIRONMENT_TEST -> "http://api.test.com"
    else -> "http://api.dev.com"
}
上一篇下一篇

猜你喜欢

热点阅读