Scala 将特定值映射到其他值的简写方法是什么?

Scala 将特定值映射到其他值的简写方法是什么?,scala,functional-programming,Scala,Functional Programming,所以我想做的是将可遍历的中的特定值映射到其他值。举例来说 scala> Seq("hello", "\\N", "world").map { s => | s match { | case "\\N" => null | case _ => s | } | } res1: Seq[String] = List(hello, null, world) 虽然这是可行的,但它需要比我希望的更多的线。有没

所以我想做的是将
可遍历的
中的特定值映射到其他值。举例来说

scala> Seq("hello", "\\N", "world").map { s =>
     |   s match {
     |     case "\\N" => null
     |     case _ => s
     |   }
     | }
res1: Seq[String] = List(hello, null, world)

虽然这是可行的,但它需要比我希望的更多的线。有没有简明扼要地达到同样的目的的速记法?

定义替换的
Map

Seq("hello","\\N","world").map(s => if (s == "\\N") null else s)
val m = Map("\\N" -> (null:String))
因此,从
映射中获取替换值,或者如果未在
映射中声明,则获取原始值

Seq("hello", "\\N", "world").map(v => m.getOrElse(v,v))

重复问题的可能重复已使用较短的形式。为什么要使用
null
?通常,在我两年的Scala专业经验中,有一个社会契约,开发者不会在代码库中使用
null
,也就是说,不需要检查Scala代码中的NPE。因为我认为这些
\N
在Spark数据框中被解释为
null
s。我也不喜欢
null
s。但我不认为还有其他选择。这听起来是一个简单但优雅的方法。谢谢