我有一個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將重複數據刪除。 –