scala - 在 Scala 中,需要将可能为空的值与可能为 "null"的搜索字符串进行比较

标签 scala

我对 Scala 比较陌生,希望找到一种更简洁的方法来执行此操作:

我目前有一些功能:

def someFunction(someSearchString: String, someSet: Set[SomeType]): Set[Blah] = 
   someSet.collect {
      case SomeItem(x, y, z) 
         if z.getOrElse("null") == someSearchString => // etc.

这可行,但在我看来,必须继续执行 .getOrElse("null") 看起来有点困惑,因为由于我们的代码库,我们在整个类中都有类似的东西正在与.如果 someSearchString 为“null”并且 z 未定义,则应将其视为匹配。不幸的是,我们无法将 someSearchString 更改为 null 而不是“null”。

有什么建议吗?

最佳答案

你的解决方案不错。

这是一种不同的方法,但仅当两个条件的处理方式存在显着差异时才有用。

def someFunction(someSearchString: String, someSet: Set[SomeType]): Set[Blah] = 
  someSet.collect {
    case SomeItem(x, y, Some(`someSearchString`)) => // etc.
    case SomeItem(x, y, None)
      if someSearchString == "null" => // etc.
  }

关于scala - 在 Scala 中,需要将可能为空的值与可能为 "null"的搜索字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50109467/

相关文章:

scala - 如何通过 scala 中的 Map 动态创建 xml 属性

performance - SCALA:在使用“.contains()”或“.exists()”的情况下,哪种数据结构是最佳的?

scala - 如何在Scala中实现默认操作的Map

java - 在 Scala 中处理 Java 方法 'paused()'?

scala - 在 Scala 中使用 reify(获取 AST)表达式的最简单方法是什么?

scala - 无法使用 IntelliJ 在本地连接到 hdfs kerberized 集群

scala - 喷雾路线得到童星回应

scala += 字符串上的赋值异常

scala - Scala 或 Java 中的 --cacerts 等同于什么?

scala - 如何将一些 Bundles 作为模块参数传递?