美文网首页
[日更][10]-Kotlin

[日更][10]-Kotlin

作者: 代码多哥 | 来源:发表于2023-08-19 11:20 被阅读0次

因为时间很短,所以内容不是很复杂,写一个有价值的小知识,主要是为了保持每日学习和写作的习惯,大作还是会写到相关的主题里面,尽量做到周更。敬请关注本人的主要作品集:

一路向下之AOSP研究

为了能够最大限度的保证文章的质量,日更主要采用翻译的方法来完成。本系列将主要翻译Kotlin官网的内容。具体的地址

https://kotlinlang.org/docs/home.html

九 控制流 - 条件表达式

像其他编程语言一样,Kotlin能够根据一段代码是否被计算为真来做出决定。这类代码称为条件表达式。Kotlin还能够创建循环并通过循环进行迭代。

条件表达式

Kotlin提供了检查条件表达式的if和when。

  1. if
    若要使用if,请在括号()中添加条件表达式,并在大括号{}中添加结果为true时要执行的操作:
val d: Int
val check = true

if (check) {
    d = 1
} else {
    d = 2
}

println(d)
// 1

Kotlin中不存在三元运算符 ?:。但是,Kotlin中if可以用作表达式。使用if作为表达式时,可以没有大括号:


val a = 1
val b = 2

println(if (a > b) a else b) // Returns a value: 2
  1. when

当条件表达式具有多个分支时使用when。when既可以用作语句,也可以用作表达式。
以下是使用when作为语句的示例:
将条件表达式放在括号() 内,将要执行的操作放在大括号{} 内。
在每个分支中使用->可以将每个条件与每个操作分开。

val obj = "Hello"

when (obj) {
    // Checks whether obj equals to "1"
    "1" -> println("One")
    // Checks whether obj equals to "Hello"
    "Hello" -> println("Greeting")
    // Default statement
    else -> println("Unknown")     
}
// Greeting

请注意,所有分支条件都会按顺序进行检查,直到其中一个条件得到满足为止。因此,只执行第一个合适的分支。

以下是使用when作为表达式的示例。将when语法立即分配给变量:

val obj = "Hello"    

val result = when (obj) {
    // If obj equals "1", sets result to "one"
    "1" -> "One"
    // If obj equals "Hello", sets result to "Greeting"
    "Hello" -> "Greeting"
    // Sets result to "Unknown" if no previous condition is satisfied
    else -> "Unknown"
}
println(result)
// Greeting

如果将when用作表达式,则else分支是强制性的,除非编译器能够检测到分支条件涵盖了所有可能的情况。
前面的示例显示了when对于匹配变量非常有用。当您需要检查布尔表达式链时,when也很有用:

val temp = 18

val description = when {
    // If temp < 0 is true, sets description to "very cold"
    temp < 0 -> "very cold"
    // If temp < 10 is true, sets description to "a bit cold"
    temp < 10 -> "a bit cold"
    // If temp < 20 is true, sets description to "warm"
    temp < 20 -> "warm"
    // Sets description to "hot" if no previous condition is satisfied
    else -> "hot"             
}
println(description)
// warm

译者注释:

  • Kotlin总没有switch分支语句,而是使用when来代替
  • Kotlin中的if/when 可以是一个表达式,意味着if/when表达式是一个值。这与Java的if/switch语句是不一样的
  • Koltin中没有三元表达式 ? :

相关文章

网友评论

      本文标题:[日更][10]-Kotlin

      本文链接:https://www.haomeiwen.com/subject/bnfrmdtx.html