【问题标题】:Scala check if None exists in a Map [duplicate]Scala检查地图中是否存在None [重复]
【发布时间】:2015-08-12 21:06:39
【问题描述】:

我有一个类型为:

Map[String, Option[SomeType]]

我想知道这个 Map 中是否有任何元素包含 None 作为值。我不想收集元素,但我只想得到一个布尔值 true 或 false!

不确定这是否正确:

  val isNoneExists = myMap.exists {
    case (_, optionalElem) => optionalElem match {
      case Some(elem) => false
      case None => true
    }
  }

【问题讨论】:

  • 你的代码已经可以工作了,但我更喜欢这个:myMap.exists(!_._2.isDefined),如果你不确定它是否正确,你应该做一些测试。
  • 我只是想知道为什么这被否决了?
  • 为什么不看看它在 scala repl 中是否有效?看起来您的代码很冗长,但可以工作。

标签: scala


【解决方案1】:

你可以这样做:

scala> val m = Map("foo" -> Some(10), "boo" -> None)

scala> m.values.exists(_ == None)
res21: Boolean = true

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2014-06-29
    • 2011-02-25
    • 2011-08-17
    • 2013-01-17
    相关资源
    最近更新 更多