Scala: pro porozumění s Možností

0

Otázka

Mám Možnost Násl. některých položek:

Option[Seq[MyItem]]

MyItem má pole "popis"

Potřebuji zjistit, zda jedna z položek má konkrétní popis.

Jak to může být provedeno pomocí pro pochopení?

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

Nejlepší odpověď

2

Pokud si chcete vyzkoušet, zda žádný prvek Option[Seq[MyItem]] má konkrétní popis pak můžete udělat.

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

Pokud opravdu potřebujete řešení, které využívá for pak jsem si nemůžu pomoct :)

2021-11-23 12:20:57

Vlastně dělám to v současné době. Ale obávám se, že čitelnost není tak dobré, takže jsem hledal pro comprehensions. Ale zdá se, že pro comprehensions nefungují, když první generátor má Možnost řešit.
Mandroid

Čitelnost závisí na publikum, ale pro příslušný programátor Scala exists verze je velmi jasná. for je vhodná pro zpracování jedné kolekce do jiné, ale tento úkol je vytvořit jednu hodnotu z kolekce. Pro to budete potřebovat fold nebo collect operace ale, že nebude o nic jasnější, než exists.
Tim

Jeden za pochopení Option[Seq[MyItem]] nebude fungovat. Nicméně to bude fungovat na Seq[Option[MyItem]]. Stačí použít existuje\fold\sbírat co zmínila @Tim
gatear

V jiných jazycích

Tato stránka je v jiných jazycích

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