Как проверить, содержит ли карта пустое строковое значение в scala? - PullRequest
4 голосов
/ 28 февраля 2011

У меня вопрос новичка.

Мы можем использовать contains, чтобы проверить, содержит ли карта указанный ключ, например:

val map = Map("a"->"1", "b"->"")
map.contains("a")

Но теперь я хочу проверить, содержит ли карта пустую строку, есть ли способ использовать?

Ответы [ 3 ]

12 голосов
/ 28 февраля 2011

Попробуйте

map.values.exists(_ == "")

Редактировать: Я думаю, что вышеупомянутое является самым ясным, но я не могу удержаться, показывая двух других.

map.exists(_._2 == "")

более компактен, но вы должны помнить, что _2 - это значение при итерации по карте.

map.values.exists(""==)

является альтернативной формой оригинала, где вместо явного сравнения аргумента с _ == "" вы предоставляете функцию равенства "".equals _ или ""== для краткости. (Два способа взглянуть на одно и то же - пустая строка, предоставляющая свой метод equals для тестирования, или ваше закрытие, проверяющее элементы на пустой строке? Я думаю, что последняя (оригинальная) значительно понятнее.) 1014 *

0 голосов
/ 28 февраля 2011

Или вы можете просто написать:

map contains ""
0 голосов
/ 28 февраля 2011

Вы можете сделать:

map.values.toSet.contains("")

или

map find { case (a,b) => b == "" } isDefined
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...