If-else在单个语句中:scala

If-else在单个语句中:scala,scala,Scala,我是斯卡拉的新手。我想知道是否有更好的方法来写下面的if-else语句。这纯粹是为了我的学习 val tokenizationRequired = if (args(4).equals("true")) true else false if (tokenizationRequired) { primary_key = args(5) if (primary_key.equals("") || primary_key.isEm

我是斯卡拉的新手。我想知道是否有更好的方法来写下面的if-else语句。这纯粹是为了我的学习

val tokenizationRequired = if (args(4).equals("true")) true else false

    if (tokenizationRequired) {
      primary_key                   = args(5)

      if (primary_key.equals("") || primary_key.isEmpty) {
        log info s"Primary_Key cannot be empty"
      }

      lookupPath                    = args(6)

      if (lookupPath.equals("") || lookupPath.isEmpty) {
        log info s"lookupPath cannot be empty"
      }

    }
这是我尝试过的案例陈述,但没有成功

val primary_key = args(5) match {
        case " " => log info s"lookupPath cannot be empty"
        case _ => args(5)
 }
谢谢你的帮助

val tokenizationRequired = args(4).toBoolean
val primary_key                   = args(5)
val lookupPath                    = args(6)

if (tokenizationRequired && primary_key.isEmpty) {
  log info s"Primary_Key cannot be empty"
}

if (tokenizationRequired && lookupPath.isEmpty) {
  log info s"lookupPath cannot be empty"
}
这是我尝试过的案例陈述,但没有成功

以下仅适用于scala 2.13+版本:

import scala.util.chaining._

val primary_key = arg(5)
     .tap(x => if (x.isEmpty) log info s"lookupPath cannot be empty")
您的版本只需稍作修改即可编译:

val primary_key = args(5) match {
  case x if x.isEmpty => 
    log info s"lookupPath cannot be empty"
    x
  case x => x 
}
这是我尝试过的案例陈述,但没有成功

以下仅适用于scala 2.13+版本:

import scala.util.chaining._

val primary_key = arg(5)
     .tap(x => if (x.isEmpty) log info s"lookupPath cannot be empty")
您的版本只需稍作修改即可编译:

val primary_key = args(5) match {
  case x if x.isEmpty => 
    log info s"lookupPath cannot be empty"
    x
  case x => x 
}

您可以对上述内容使用match case语句。我尝试了match,但无法在case语句中打印日志。您是否可以提供您尝试的match case,而不仅仅是
tokenizationRequired=args(4)=“true”
之间的区别是什么?i空的
?(提示:没有。)为什么要使用字符串插值,
s“…”,
当字符串中没有可插入的内容时?您可以对上述内容使用match case语句。我尝试了match,但无法在case语句中打印日志。您能否提供您尝试的匹配案例?为什么不仅仅是
tokenizationRequired=args(4)=“true”
之间的区别是什么?i空的
?(提示:没有。)当字符串中没有要插值的内容时,为什么要使用字符串插值、
s“…”、