Scala: pre porozumenie s Možnosťou

0

Otázka

Mám Možnosť Nasl. niektoré položky:

Option[Seq[MyItem]]

MyItem má pole "opis"

Potrebujem zistiť, či niektorá z položiek má konkrétny popis.

Ako to môže byť vykonané pomocou na porozumenie?

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

Najlepšiu odpoveď

2

Ak si chcete otestovať, či akýkoľvek prvok Option[Seq[MyItem]] má špecifickú description potom môžete to urobiť.

opt.exists(_.exists(_.description == ???))

Ak naozaj potrebujete riešenie, ktoré využíva for potom nemôžem si pomôcť :)

2021-11-23 12:20:57

Vlastne robím to v súčasnosti. Ale mám strach, čitateľnosť, nie je to dobré, tak som hľadal pre comprehensions. Ale zdá sa, pre comprehensions nefungujú, keď prvý generátor má Možnosť riešiť.
Mandroid

Čitateľnosť závisí na publikum, ale pre príslušný Scala programátor na exists verzia je veľmi jasné. for je vhodné pre spracovanie jednej kolekcie do druhého, ale táto úloha je produkovať jednu hodnotu zo zbierky. Na to budete potrebovať fold alebo collect operácia, ale že sa nebude žiadne jasnejšie ako exists.
Tim

Singel-s porozumením na Option[Seq[MyItem]] nebude fungovať. Bude však fungovať na Seq[Option[MyItem]]. Stačí použiť existuje\násobne\zbierať ako uvádza @Tim
gatear

V iných jazykoch

Táto stránka je v iných jazykoch

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