我有一个Seq[String]
在Scala中,如果Seq
包含某些String
S,我附上相关消息,另一份清单。斯卡拉替代系列如果添加到列表语句?
有没有更“scalaesque”的方式做到这一点,而不是一系列if语句追加到列表像我有下面的?
val result = new ListBuffer[Err]()
val malformedParamNames = // A Seq[String]
if (malformedParamNames.contains("$top")) result += IntegerMustBePositive("$top")
if (malformedParamNames.contains("$skip")) result += IntegerMustBePositive("$skip")
if (malformedParamNames.contains("modifiedDate")) result += FormatInvalid("modifiedDate", "yyyy-MM-dd")
...
result.toList
谢谢,感觉这是一个有点难以阅读和理解,虽然,原来if语句的方法吗? – Rory
我认为这很容易理解,但YMMV。在if语句的方法,你必须通过每个什么,如果是做弄清楚你正在建立基于其他序列的内容序列,以自己的方式工作,而地图的存在/扁平化使得该清楚Benoit的。 –
有从这个对比的例子未成年人的语义差别:会有的问题的代码没有重复的元素,同时也可以在此解决方案。如果这是重要的,result.toSet.toList将重复数据删除。 –