Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.0.2

flinq

Erweiterte Funktionen für Sammlungen. Es handelt sich um Reihe von Kurzschlüssen, um unnötigen Boilerplate-Code bei Sammlungen zu vermeiden.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
1900
Likes
57
Pub-Punkte
150

Paket installieren

flutter pub add flinq

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Flinq verbessert die Sammlungsverwaltung in Dart durch eine Reihe intuitiver Erweiterungsmethoden, die Boilerplate-Code reduzieren. Es bietet praktische Kurzwege für häufige Operationen wie Filtern, Abbilden und Transformieren von Sammlungen, wodurch die Arbeit mit Listen und Mengen kürzer und übersichtlicher wird. Als leichtgewichtiges Hilfsmittel ist Flinq nahtlos in bestehende Dart-Projekte integrierbar, ohne Komplexität hinzuzufügen. Ihr Fokus liegt darauf, die Produktivität von Entwicklern zu steigern, indem wiederholte Sammlungsmanipulationen vereinfacht werden.

Anwendungsfälle

  • Listentransformationen vereinfachen
  • Boilerplate im Datenverarbeitungsprozess reduzieren
  • Vereinfachung der Filter- und Zuordnungslogik
  • Codelesbarkeit verbessern
  • Verbesserung funktionaler Sammlungsoperationen
  • Beschleunigung der Prototypenerstellung

Hauptmerkmale

  • Kettenfähige Erweiterungsmethoden
  • minimale Syntax-Overhead
  • Unterstützt alle grundlegenden Sammlungstypen
  • Keine externen Abhängigkeiten
  • Sauberer, funktionaler API-Entwurf
  • Intuitive Methodennamen

Geeignet für

  • Dart-Entwickler, die sauberen Sammlungscodes suchen
  • Projekte, die auf Code-Klarheit abzielen
  • Funktionale Programmiermuster in Dart
  • Schnelle Anwendungsentwicklung
  • Teams, die wiederholten Code reduzieren möchten

Hinweise

  • Beschränkt auf Sammlungsmanipulation
  • Nicht geeignet für komplexe Zustandsverwaltung
  • Erfahrung mit Dart-Erweiterungen erforderlich
  • Kann die Lernkurve für Anfänger erhöhen
  • Am besten in Kombination mit anderen Hilfsprogrammen verwendet

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

flinq

Build codecov Pub GitHub GitHub stars

Extended capabilities for collections. It's a bunch of shortcuts to avoid unnecesary boilerplate work with collections.

Getting Started

This package will help you to reduce the amount of boilerplate code by adding folowing extensions for Iterables:

  • getter firstOrNull and method firstOrNullWhere for getting first value, and if it will not be found returns null

  • getter lastOrNull and method lastOrNullWhere for getting last value, and if it will not be found returns null

  • getter singleOrNull and method singleOrNullWhere for getting single value, and if it will not be found returns null, and if there will be too many elements it'll also return null

  • method mapList, which maps collection and casts it to List

  • method whereList, which filters collection and casts it to List

  • method mapWhereList, which maps collection, then filters it and then casts it to List

  • method whereMapList, which filters collection, then maps collection and then casts it to List

  • getter notNull for getting only not null values from the collection

  • method group and groupMap for grouping a collection

  • getter min/minOrNull and max/maxOrNull for getting minimal or maximal value from collection of Comparables

  • method minWhere/minOrNullWhere and maxWhere/maxOrNullWhere for getting minimal or maximal value from filtered collection of Comparables

  • getter sum and average for getting sum and average from collection of nums

  • method sumWhere and averageWhere for getting sum and average from filtered collection of nums

  • getter distinct and method distinctWhere which will return List with unique values in collection

  • method union and unionWhere which will return List with union of two collections with only unique values in resulting collection

  • method intersection and intersectionWhere which will return List with elements that contains both collections with only unique values in resulting collection

  • method difference and differenceWhere which will return List with difference between two collections with only unique values in resulting collection

Examples

Iterable extension can be used like this:

Common
  • firstOrNull and firstOrNullWhere
final firstOrNull = [].firstOrNull; // null
// or
final firstOrNull = [3, 6, 2, 7, 9].firstOrNullWhere((item) => item > 10); // null
  • lastOrNull and lastOrNullWhere
final lastOrNull = [].lastOrNull; // null
// or
final lastOrNull = [3, 6, 2, 7, 9].lastOrNullWhere((item) => item > 10); // null
  • singleOrNull and singleOrNullWhere
final singleOrNull = [].singleOrNull; // null
// or
final singleOrNull = [3, 6, 2, 7, 9].singleOrNullWhere((item) => item > 3); // null
  • mapList
List<double> mappedList = [3, 6, 2, 7, 9].mapList((item) => item.toDouble());
  • whereList
List<int> filteredList = [3, 6, 2, 7, 9].whereList((item) => item > 4);
  • whereMapList
List<double> filteredMappedList = [3, 6, 2, 7, 9].whereMapList((item) => item > 4, (item) => item.toDouble());
  • mapWhereList
List<double> mappedFilteredList = [3, 6, 2, 7, 9].mapWhereList((item) => item.toDouble(), (item) => item > 4);
  • notNull
Iterable<int> notNullIterable = [3, 6, 2, null, 7, 9].notNull;
  • group
final collection = [
    Pet("rat", "Mike"),
    Pet("dog", "Rex"),
    Pet("cat", "Lucy"),
];

/*
<bool, List<Pet>>{
    true: [
        Pet("rat", "Mike"),
        Pet("cat", "Lucy"),
    ],
    false: [
        Pet("dog", "Rex"),
    ],
}
*/
final group = collection.group((item) => item.name.endsWith('at'));
  • groupMap
final collection = [
    Pet("rat", "Mike"),
    Pet("dog", "Rex"),
    Pet("cat", "Lucy"),
];

/*
<bool, int>{
    true: 2,
    false: 1,
}
*/
final groupMapped = collection.groupMap(
      (item) => item.name.endsWith('at'), (group) => group.length);
Comparable
  • min and minOrNull
final min = [3, 6, 2, 7, 9].min; // 2
// or
final min = [].minOrNull; // null
  • minWhere and minOrNullWhere
final min = [3, 6, 2, 7, 9].minWhere((_) => _ > 4); // 6
// or
final min = [3, 2].minOrNullWhere((_) => _ > 4); // null
  • max and maxOrNull
final max = [3, 6, 2, 7, 9].max; // 9
// or
final max = [].maxOrNull; // null
  • maxWhere and maxOrNullWhere
final max = [3, 6, 2, 7, 9].maxWhere((_) => _ < 4); // 3
// or
final max = [3, 2].maxOrNullWhere((_) => _ > 4); // null
Math
  • sum
final sum = [3, 6, 2, 7, 9].sum; // 27
  • average
final average = [1, 3, 5, 7, 4, 4].average; // 4
  • sumWhere
final sum = [3, 6, 2, 7, 9].sumWhere((_) => _ > 4); // 22
  • averageWhere
final average = [1, 3, 5, 7, 4, 4].averageWhere((_) => _ > 4); // 6
Set
  • distinct
final collectionOne = [2, 5, 8, 2];

final distinctCollection = collectionOne.distinct; // [2, 5, 8]
  • distinctWhere
final collectionOne = [2, 5, 8, 2];

final distinctCollection = collectionOne.distinctWhere((_) => _ > 4); // [5, 8]
  • union
final collectionOne = [2, 5, 8, 2];
final collectionTwo = [1, 3, 5, 7];

final unitedCollection = collectionOne.union(collectionTwo); // [2, 5, 8, 1, 3, 7]
  • unionWhere
final collectionOne = [2, 5, 8, 2];
final collectionTwo = [1, 3, 5, 7];

final unitedCollection = collectionOne.unionWhere(collectionTwo, (_) => _ > 4); // [5, 8, 7]
  • intersection
final collectionOne = [2, 5, 8, 2];
final collectionTwo = [1, 3, 5, 7];

final intersectedCollection = collectionOne.intersection(collectionTwo); // [5]
  • intersectionWhere
final collectionOne = [2, 5, 8, 2];
final collectionTwo = [1, 3, 5, 7];

final intersectedCollection = collectionOne.intersectionWhere(collectionTwo, (_) => _ < 4); // []
  • difference
final collectionOne = [2, 5, 8, 2];
final collectionTwo = [1, 3, 5, 7];

final differedCollection = collectionOne.difference(collectionTwo); // [2, 8]
// or
final differedCollection = collectionTwo.difference(collectionOne); // [1, 3, 7]
  • differenceWhere
final collectionOne = [2, 5, 8, 2];
final collectionTwo = [1, 3, 5, 7];

final differedCollection = collectionOne.differenceWhere(collectionTwo, (_) => _ < 4); // [2]
// or
final differedCollection = collectionTwo.differenceWhere(collectionOne, (_) => _ < 4); // [1, 3]

Feature requests and Bug reports

Feel free to post a feature requests or report a bug here.

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden