Pascalutils est une bibliothèque d'objets pour Delphi et Freepascal des structures de données qui implémente le sucre syntaxique similaire à celle d'autres langues modernes en ce qui concerne la syntaxe.
La bibliothèque est testée pour
Obtenez les sources et ajoutez le répertoire source au chemin de recherche de projet. Pour FPC, ajoutez le répertoire source au fichier fpc.cfg .
Clone The Repository git clone https://github.com/isemenkov/pascalutils .
Ajoutez l'unité que vous souhaitez utiliser à la clause uses .
La classe Tany décrit un conteneur de type type pour une valeur unique.
uses
utils.any;
type
generic TAny<T> = classLa classe Toptional représente une valeur facultative: chaque toption est contenant une valeur, ou ne fait pas, comme dans Rust Lang.
uses
utils.optional;
type
generic TOptional<T> = classPlus de détails Lisez sur la page Wiki.
Les types de résultats contiennent généralement une valeur renvoyée ou une erreur, et peuvent fournir une encapsulation de première classe du modèle commun (valeur, err) omniprésent dans les programmes GO.
uses
utils.result;
type
generic TResult<V, E> = classPlus de détails Lisez sur la page Wiki.
TVOIDRESULT contient un drapeau OK ou un type d'erreur comme dans les langues Go ou Rust. Il s'agit d'un type de tresult spécialisé sans valeur.
uses
utils.result;
type
generic TVoidResult<E> = classPlus de détails Lisez sur la page Wiki.
La classe tdatasize fournit l'interface pour manipuler les tailles de données.
uses
utils.datasize;
type
TDataSize = classPlus de détails Lisez sur la page Wiki.
La classe TtimeInterval fournit l'interface pour manipuler les intervalles de temps.
uses
utils.timeinterval;
type
TTimeInterval = classPlus de détails Lisez sur la page Wiki.
La classe TPAIR couple ensemble une paire de valeurs, qui peuvent être de différents types (T1 et T2). Les valeurs individuelles sont accessibles par le biais de ses membres publics en premier et deuxième, comme dans la langue C ++.
uses
utils.pair;
type
generic TPair<T1, T2> = classPlus de détails Lisez sur la page Wiki.
Ttuple est un objet capable de contenir une collection d'éléments. Chaque élément peut être de type différent, comme dans la langue C ++.
uses
utils.tuple;
type
generic TTuple3<T1, T2, T3> = class
generic TTuple4<T1, T2, T3, T4> = class
generic TTuple5<T1, T2, T3, T4, T5> = class
generic TTuple6<T1, T2, T3, T4, T5, T6> = class
generic TTuple7<T1, T2, T3, T4, T5, T6, T7> = class
generic TTuple8<T1, T2, T3, T4, T5, T6, T7, T8> = class
generic TTuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> = class
generic TTuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> = classPlus de détails Lisez sur la page Wiki.
Tvariant est un modèle de classe qui représente une union de type type. Une instance de tvariant à un moment donné contient une valeur de l'un de ses types alternatifs.
uses
utils.variant;
type
generic TVariant2<T1, T2> = class
generic TVariant3<T1, T2, T3> = class
generic TVariant4<T1, T2, T3, T4> = class
generic TVariant5<T1, T2, T3, T4, T5> = class
generic TVariant6<T1, T2, T3, T4, T5, T6> = class
generic TVariant7<T1, T2, T3, T4, T5, T6, T7> = class
generic TVariant8<T1, T2, T3, T4, T5, T6, T7, T8> = class
generic TVariant9<T1, T2, T3, T4, T5, T6, T7, T8, T9> = class
generic TVariant10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> = classPlus de détails Lisez sur la page Wiki.
Functor est l'instance d'une classe avec Call de fonction membre définie. Cette fonction membre permet à l'objet d'être utilisé avec la même syntaxe qu'un appel de fonction régulier, et donc son type peut être utilisé comme paramètre de modèle lorsqu'un type de fonction générique est attendu.
uses
utils.functor;
type
generic TUnaryFunctor<V, R> = classPlus de détails Lisez sur la page Wiki.
Functor est l'instance d'une classe avec Call de fonction membre définie. Cette fonction membre permet à l'objet d'être utilisé avec la même syntaxe qu'un appel de fonction régulier, et donc son type peut être utilisé comme paramètre de modèle lorsqu'un type de fonction générique est attendu.
uses
utils.functor;
type
generic TBinaryFunctor<V, R> = classPlus de détails Lisez sur la page Wiki.
Il s'agit d'un foncteur de comparaison spécial qui retourne 0 (zéro) à tous les temps. Valeurs réelles non utilisées. Ce Functor peut être utilisé pour les conteneurs pour des valeurs inaccessibles.
uses
utils.functor;
type
TUnsortableFunctor =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>);Plus de détails Lisez sur la page Wiki.
Il s'agit d'un Functor qui renvoie une valeur négative si AVALUE1 doit être trié avant Avalue2, une valeur positive si Avalue1 doit être triée après AVALUE2, zéro si AVALUE1 et AVALUE2 sont égaux.
uses
utils.functor;
type
generic TDefaultCompareFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>)
public
function Call (AValue1, AValue2 : V) : Integer;
end ;Plus de détails Lisez sur la page Wiki.
C'est un Functor qui revient True If Avalue1 <Avalue2.
uses
utils.functor;
type
generic TDefaultLessFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);Plus de détails Lisez sur la page Wiki.
C'est un fonctor qui revient vrai si AVALUE1> AVALUE2.
uses
utils.functor;
type
generic TDefaultGreaterFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);Plus de détails Lisez sur la page Wiki.
C'est un Functor qui revient True If Avalue1 = Avalue2.
uses
utils.functor;
type
generic TDefaultEqualFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);Plus de détails Lisez sur la page Wiki.
Il s'agit d'un Functor qui renvoie une valeur négative si la touche de paire 1 doit être triée avant la touche de paire 2, une valeur positive si la touche de paire 1 doit être triée après la touche de paire 2, zéro si la touche de paire 1 et la clé de paire 2 sont égales.
uses
utils.functor, utils.pair;
uses
generic TDefaultPairKeyCompareFunctor<K, V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor
< { $IFDEF FPC } specialize { $ENDIF } TPair<K, V>, Integer>)Plus de détails Lisez sur la page Wiki.
API.CSTRING est un wrapper autour de la valeur CSTring API CSTRING char * .
uses
utils.api.cstring;
type
API = class
type
CString = class
end ;Plus de détails Lisez sur la page Wiki.
TARAYERRORSSTACK est une pile générique sur le tableau de T qui contient des codes d'erreurs.
uses
utils.errorsstack;
type
generic TArrayErrorsStack<T> = classPlus de détails Lisez sur la page Wiki.
TLISTERRORSSTACK est une pile générique sur la liste des classes T qui contient des codes d'erreurs.
uses
utils.errorsstack;
type
generic TListErrorsStack<T> = classPlus de détails Lisez sur la page Wiki.
TFORWARWITERATOR est une classe de base pour les itérateurs de direction vers l'avant personnalisés.
uses
utils.enumerate;
type
generic TForwardIterator<V, Iterator> = classPlus de détails Lisez sur la page Wiki.
Tbidirectionaliterator est une classe de base pour les itérateurs de directions avant et arrière personnalisées.
uses
utils.enumerate;
type
generic TBidirectionalIterator<V, Iterator> = classPlus de détails Lisez sur la page Wiki.
La classe Tenumerator ajoute un contraire à un objet itérable ce qui a itérateur basé sur TForwarwiterator ou Tbidirectionaliterator et le renvoie (l'objet énuméré) comme dans un langage python.
uses
utils.enumerate;
type
generic TEnumerator<V, Iterator> = classPlus de détails Lisez sur la page Wiki.
La classe TFilteRenumerator fournit un énumérateur de filtrage par unaryfunctor.
uses
utils.enumerate, utils.functor;
type
generic TFilterEnumerator<V, Iterator, Functor> = classFunctor est basé sur l'interface utils.functor.tunaryfunctor et utilisé pour filtrer la valeur de l'élément.
Plus de détails Lisez sur la page Wiki.
Taccumulate accumulé des valeurs à l'aide de fonctions binaires (spécifiées via l'argument du fonctor).
uses
utils.functional, utils.functor;
type
generic TAccumulate<V, Iterator, Functor> = classFunctor est basé sur l'interface utils.functor.tbinaryfunctor et utilisé pour accumuler la valeur de résultat.
Plus de détails Lisez sur la page Wiki.
TMAP en appliquant le fonctor donné à chaque élément d'un objet itérable donné).
uses
utils.functional, utils.functor;
type
generic TMap<V, Iterator, Functor> = classFunctor est basé sur l'interface utils.functor.tunaryfunctor et utilisé pour modifier la valeur de l'élément.
Plus de détails Lisez sur la page Wiki.