Вам нужно использовать ключевое слово match
, чтобы использовать варианты.Там может быть какое-то значение, для которого вы будете использовать сопоставление с образцом.Поэтому используйте следующий код в вашей функции:
x match {
case org: String if !ignoredIds.contains(x) => ???
case org : String if ignoredIds.contains(x) => ???
}
Также вам следует рассмотреть возможность добавления еще одного регистра, который является значением по умолчанию.Как вы знаете, параметр x
вашей функции def csNotify(x: Any): String
имеет тип any.Таким образом, все, кроме String
, также может быть передано здесь, например Int
или Boolean
или любой другой тип.В этом случае код прервется с ошибкой совпадения.
Также будет предупреждение компилятора о match is not exhaustive
, поскольку текущий код не обрабатывает все возможные значения для типа Any
параметра x
.
Но если вы добавите один случай по умолчанию в сопоставление с образцом, все случаи, которые не обрабатываются первыми двумя случаями (неожиданный тип или значения), перейдут к случаю по умолчанию.Таким образом, код будет более надежным:
def csNotify(x : Any): String = x match {
case org: String if !ignoredIds.contains(org) => ???
case org : String if ignoredIds.contains(org) => ???
case org => s"unwanted value: $org" // or any default value
}
Примечание. Пожалуйста, замените ???
на нужный код.:)