20 - map, for és yield¶
Láttunk már korábban a foreach
-hez hasonló metódust, ez pedig a map
volt.
Mindkettő egy f: T=>U
függvényt vár, ha (mondjuk) egy List[T]
-n hívjuk, és
- mindkettő kiértékeli
f
-et a lista összes elemén, - a
foreach
eldobja az eredményeket és visszakapjuk értékként a()
Unitot - a
map
az eredményekből készít egy új listát és azt adja vissza
for yield¶
Ha a map
re van szükségünk, azt is for
comprehensionnel végeztethetjük el, a comprehension és a
magjában lévő kifejezés közé illesztve a yield
kulcsszót:
1 2 3 |
|
f
-et, az eredményeket pedig egy listába szervezzük.
Kérdések, feladatok¶
- Ha
c
típusaList[T]
, és hax
típusaT
, akkorE
típusaU
, akkor mi lesz afor( x <- c ) yield E
kifejezés típusa?
`List[U]`.
Válasz mutatása
- A
foreach
alapján mire alakítja át a Scala fordító afor ( x <- c ) yield E
akakú kifejezéseket?
`c.map( { x => E} )`.
Válasz mutatása
- Vajon ha egy saját osztályban implementáljuk a megfelelő szignatúrájú
map
metódust, akkor használhatunk rajta for yield comprehensiont is?
Természetesen, ez is ,,ingyen'' jön, mint ahogy a `foreach`-hoz is a yield nélküli for comprehension. Próbáljuk ki a saját listánk mapjével!
Válasz mutatása
Utolsó frissítés: 2020-12-24 17:03:27