CompactMap és flatMap, mik a különbségek és mikor használja őket? A Swift 4.1 bevezette ezt az új módszert a 0187 javaslattal: vezessen be Filtermap-ot, hogy nagyobb egyértelműséget szerezzen a flatMap Használati esetekben.

használja ezt a módszert nemopcionális értékek tömbjének fogadására, amikor az átalakítás opcionális értéket hoz létre.

a SwiftUI alkalmazások architektúrája MVC és Mvvmalbár létrehozhat egy alkalmazást egyszerűen néhány kód összerakásával, a legjobb gyakorlatok és a robusztus architektúra nélkül, hamarosan kezelhetetlen spagetti kód lesz. Ismerje meg, hogyan hozhat létre szilárd és karbantartható alkalmazásokat kevesebb hibával az ingyenes útmutató segítségével.

lásd a térkép és a kompakttérkép közötti különbségeket a következő példában:

mikor kell használni a flatMap-et

ezzel a módszerrel egyszintű gyűjteményt kaphat, amikor az átalakítás minden elemhez sorozatot vagy gyűjteményt hoz létre.

lásd a térkép és a flatMap közötti különbséget a következő példában:

valójában a s.flatMap(transform)egyenértékű Array(s.map(transform).joined()) – vel.

compactMap vs flatMap

az általános ökölszabály itt, hogy emlékeztesse magát a kód írásakor:

egy szekvencián használt, opcionális értéket visszaadó transzformációval használja a compactMapértéket. Ha nem, akkor a map vagy a flatMap megadja a szükséges eredményeket.

a SwiftUI alkalmazások felépítése MVC – vel és Mvvmalbár létrehozhat egy alkalmazást egyszerűen néhány kód összerakásával, a legjobb gyakorlatok és a robusztus architektúra nélkül, hamarosan kezelhetetlen spagetti kód lesz. Ismerje meg, hogyan hozhat létre szilárd és karbantartható alkalmazásokat kevesebb hibával az ingyenes útmutató segítségével.

a compactMap

elnevezés oka bár néhányan javasolták a filterMap bevezetését metódusnévként, a Swift csapata inkább a compactMap mellett döntött. A motivációik olvasása elég sokat tisztázza a dolgokat, és megmagyarázza a módszer funkcionalitását is.

“a” filterMap ” egy olyan név, amelynek precedense van más programozási nyelvekben, különösen a funkcionális nyelvekben, de egyesek határozottan úgy érezték, hogy a név félrevezető, mert kombinált műveletként nem egészen szűrő vagy térkép volt. Az alternatívák közül a legerősebb támogatás a “compactMap” volt, amely a “compact” precedensére épül, amely más nyelvekből (nevezetesen Ruby) származó művelet, amely a bemenet másolatát nulla érték nélkül adja vissza. A Swift-nek jelenleg nincs ilyen művelete, és valójában jelenleg nem lehet kifejezni; mindazonáltal a core csapat egyetért abban, hogy ésszerű művelet lenne hozzáadni, és hogy a “compactMap” jó név a művelethez.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.