A Dart támogatja a nyíl függvények használatát, amik egy rövidebb és tömörebb formát biztosítanak bármely olyan függvényhez, ami egyetlen kifejezést tartalmaz.
Másképpen megfogalmazva a nyíl függvényeket (angolul arrow functions) leggyakrabban akkor használjuk, amikor egy függvény kap valami adatot és a törzsében azonnal visszatér valami értékkel.
Tipikusan alkalmazás, amikor van egy egyszerű névtelen függvényünk, ami vagy fogad bemeneti paramétert, vagy nem, aztán rögtön visszatér valamivel és nem hajt végre egyéb más műveletet a függvény törzsén belül. (Példa lent található.)
Hagyományos függvény
final numCorrectQuestions = summaryData.where((data) {
return data['user_answer'] == data['correct_answer'];
}).length;
A nyíl függvény
final numCorrectQuestions = summaryData
.where(
(data) => data['user_answer'] == data['correct_answer'],
)
.length;
Mit csináltunk?
- A summaryData.where((data) után tettünk egy „nyilat”, ami egyenlőségjelből és egy nagyobb jelből áll össze.
- Elhagytuk a függvény törzsét körbefogó { } kapcsoszárójelet.
- Elhagytuk a return utasítást, ami kötelező is.
- Illetve a nyíl függvényben szereplő egyetlen utasítás végéről töröltük a pontosvesszőt is. A vesszőt csak amiatt tettem ki, hogy a VSCode-ban az automata formázás könnyebben menjen. De igazából az a vessző sem kell.