在Scala中查找HashMap中键值的最后值 - 如何以函数样式编写它

Mat*_*her 0 scala

我想在键之后搜索hashmap,如果找到键,则给出键的找到值的最后一个值.这是我到目前为止的解决方案:

import scala.collection.mutable.HashMap

object Tmp extends Application {
  val hashmap = new HashMap[String, String]
  hashmap += "a" -> "288 | object | L"

  def findNameInSymboltable(name: String) = {
    if (hashmap.get(name) == None)
      "N"
    else
      hashmap.get(name).flatten.last.toString
  }

  val solution: String = findNameInSymboltable("a")
  println(solution) // L

}
Run Code Online (Sandbox Code Playgroud)

是否有一种功能性的风格可以节省我的本地开销?

eiv*_*ndw 5

无法让你的榜样发挥作用.但也许这样的事情会起作用吗?

hashmap.getOrElse("a", "N").split(" | ").last
Run Code Online (Sandbox Code Playgroud)

"getOrElse"至少会为你保存if/else检查.