Eu tenho uma Opção de uma Seq de alguns itens:
Option[Seq[MyItem]]
MyItem tem um campo 'descrição'
Eu preciso descobrir se um dos itens tem uma descrição específica.
Como isso pode ser feito usando-se para a compreensão?
Eu tenho uma Opção de uma Seq de alguns itens:
Option[Seq[MyItem]]
MyItem tem um campo 'descrição'
Eu preciso descobrir se um dos itens tem uma descrição específica.
Como isso pode ser feito usando-se para a compreensão?
Se você quiser testar se qualquer elemento de Option[Seq[MyItem]]
tenha uma descrição específica em seguida, você pode fazer isso.
opt.exists(_.exists(_.description == ???))
Se você realmente precisa de uma solução que utiliza for
então eu não posso ajudar :)
exists
a versão é muito clara. for
é adequado para o processamento de uma coleção para outra, mas esta tarefa é produzir um único valor a partir de uma coleção. Para isso você precisa de um fold
ou collect
a operação, mas que não vai ser mais clara do que exists
. Option[Seq[MyItem]]
não vai funcionar. No entanto ele funcionará em Seq[Option[MyItem]]
. Usar apenas existe\dobra\recolher como mencionado pelo @Tim