Scala: compreensão, com Opção de

0

Pergunta

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?

scala
2021-11-23 12:01:45
1

Melhor resposta

2

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 :)

2021-11-23 12:20:57

Na verdade, eu estou fazendo isso atualmente. Mas tenho medo de legibilidade não é bom, então eu estava procurando para compreensões. Mas parece que para compreensões não funcionam quando o primeiro gerador tem Opção para lidar com.
Mandroid

A legibilidade depende do público-alvo, mas para um competente Scala programador 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.
Tim

Um único para a compreensão Option[Seq[MyItem]] não vai funcionar. No entanto ele funcionará em Seq[Option[MyItem]]. Usar apenas existe\dobra\recolher como mencionado pelo @Tim
gatear

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................