ktx 1.1.4-nullsafety ktx: ^1.1.4-nullsafety copied to clipboard
The KTX Library provides a comprehensive set of tools for managing collections.
KTX #
The KTX Library provides a comprehensive set of tools for managing collections – groups of a variable number of items (possibly zero) that share significance to the problem being solved and are operated upon commonly.
Getting Started #
associateBy #
associateBy
is an operation allows associate the list items with the given key.
final List<Fruit> fruits = [
Fruit(id: 1, kind: "Pear", color: "Red"),
Fruit(id: 2, kind: "Apple", color: "Green")
];
final Map<int, Fruit> mappedFruits = fruits
.associateBy((fruit) => fruit.id);
mapToList #
mapToList
returns a list containing the results of applying the given [transform] function.
final Map<int, Fruit> fruits = {
1: Fruit(kind: "Pear", color: "Red"),
2: Fruit(kind: "Apple", color: "Green")
};
final List<String> fruitNames = fruits
.mapToList((key, fruit) => fruit.kind);
sortBy #
sortBy
sorts elements in the list in-place according to natural sort order of the value returned by specified [selector] function.
final List<Fruit> fruits = [
Fruit(id: 1, kind: "Apple", color: "Red"),
Fruit(id: 2, kind: "Apple", color: "Green")
];
final List<Fruit> sortedByNamefruits = fruits
.sortBy((fruit) => fruit.kind);
groupBy #
groupBy
groups elements of the original collection by the key returned by the given [keySelector] function applied to each element
and returns a map where each group key is associated with a list of corresponding elements.
final List<Fruit> fruits = [
Fruit(id: 1, kind: "Apple", color: "Red"),
Fruit(id: 2, kind: "Apple", color: "Green")
];
final Map<String, List<Fruit>> groupedFruits = fruits
.groupBy((fruit) => fruit.kind);
mapIndexed #
mapIndexed
returns a list containing the results of applying the given [transform] function to each element and its index in the original collection.
final fruits = ["Apple", "Pear", "Orange"];
final indexedFruits = fruits.mapIndexed((index, fruit) => "${index + 1}: $fruit");
/// ["1: Apple", "2: Pear", "3: Orange"]);
zip #
zip
returns a list of values built from the elements of this
collection and the [other] collection with the same index.
final kinds = ["Apple", "Pear", "Apricot"];
final colors = ["Red", "Green", "Orange"];
final fruits = kinds.zip(colors, (kind, color) => Fruit(kind, color));
let #
let
calls the specified function [block] with this
value as its argument and returns its result.
final Fruit? fruit = Fruit(id: 1, kind: "Apple", color: "Red");
fruit?.let((fruit) => print(fruit));