Kotlin 中 Swift “if let” 语句的等价语句


Swift 中的“if let”是一个条件检查运算符,用于检查引用变量是否为 NULL。这是一种非常有用的技术,可以使用 Swift 语言来评估解包可选值。

在 Kotlin 中,我们不能直接使用此运算符。相反,我们将使用“let”和“run”来评估相同的内容。在下面的示例中,我们将看到如何使用 Kotlin 库类使用“let”和“run”。

示例:使用 'let' 和 'run' 进行空值检查

在此示例中,我们将检查引用变量的值是否为 NULL。如果引用变量的值为 NULL,则将执行 'let' 代码块,否则将执行 'run' 代码块。

fun main(args: Array<String>) {
   val b="TutorialsPoint"
   val a = b?.let {
      // If b is not null
         println("First block");
   } ?: run {
         // If b is null.
         println("Second block");
   }
}

输出

在我们的示例中,我们正在检查变量“b”的值是否为 NULL。由于变量不为 NULL,因此编译器将执行 'let' 代码块,相应的输出将为“第一个代码块”。

First block

现在,让我们将 'b' 的值更改为 NULL,如下所示。

示例

fun main(args: Array<String>) {
   val b= null
   val a = b?.let {
      // If b is not null.
      println("First block");
   } ?: run {
         // If b is null.
         println("Second block");
   }
}

输出

现在输出将更改为“第二个代码块”,因为编译器将执行 'run' 代码块。

Second block

示例:使用 'also' 和 'run' 进行空值检查

空值检查也可以使用 Kotlin 中的 'also' 函数来实现。在此示例中,我们将看到它是如何工作的。我们将修改上面的代码并检查变量“b”的值是否为 NULL。

fun main(args: Array<String>) {
   val b:String? = null
   b?.also{
      println("First block") // For not NULL value
   }?:run{
      println("Second block") // For NULL value
   }
}

输出

Second block

在上面的示例中,变量的值明确地保持为“NULL”,因此我们得到输出“第二个代码块”。一旦我们修改“b”的值,那么我们将得到输出“第一个代码块”。

fun main(args: Array<String>) {
   val b:String? = "TutorialsPoint"
   b?.also{
      println("First block")
   }?:run{
      println("Second block")
   }
}

输出

First block

更新于: 2021-11-23

2K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告