【发布时间】:2021-04-09 10:15:42
【问题描述】:
我是 Scala 新手,
对于地图中的每个键,我想匹配一个新值
class SomeLongNameObject {
val m: Map[String, String] = Map("a" -> "aa",
"b" -> "bb",
"other" -> "someString")
m.map {
case (aKey, v) => println("a found")
case (bKey, v) => println("b found")
case (k,v) => println("fallback")
}
}
object SomeLongNameObject {
val aKey = "a"
val bKey = "b"
}
val someObject = new SomeLongNameObject
我期望(并且希望)给定的地图会打印出来
a found
b found
fallback
然而,结果是
a found
a found
a found
据我所知,case (aKey, v) 中未使用 SomeLongNameObject 对象中的 aKey,
有没有办法强制它以比下面更优雅的方式使用对象 SomeLongNameObject 中的 val?
m.map {
case (SomeLongNameObject.aKey, v) => println("a found")
case (SomeLongNameObject.bKey, v) => println("b found")
case (k,v) => println("fallback")
}
【问题讨论】:
标签: scala dictionary design-patterns match