Pascalutils ist eine Objektbibliothek für Delphi und Freepascal von Datenstrukturen, die syntaktischen Zucker implementiert, ähnlich wie bei anderen modernen Sprachen, soweit die Syntax dies zulässt.
Bibliothek wird getestet für
Holen Sie sich die Quellen und fügen Sie das Quellverzeichnis zum Projektsuchpfad hinzu. Für FPC fügen Sie das Quellverzeichnis der fpc.cfg -Datei hinzu.
Klonen des Repository git clone https://github.com/isemenkov/pascalutils .
Fügen Sie das Gerät hinzu, das Sie uses möchten.
Die Tany-Klasse beschreibt einen Typ-Safe-Container für Einzelwert.
uses
utils.any;
type
generic TAny<T> = classToptional -Klasse stellt einen optionalen Wert dar: Jedes Toptional enthält einen Wert oder nicht wie in Rost Lang.
uses
utils.optional;
type
generic TOptional<T> = classWeitere Details finden Sie auf der Wiki -Seite.
Ergebnistypen enthalten normalerweise entweder einen zurückgegebenen Wert oder einen Fehler und können erstklassige Einkapselung des gemeinsamen (Wertes, Err-) Musters allgegenwärtig während der gesamten GO-Programme liefern.
uses
utils.result;
type
generic TResult<V, E> = classWeitere Details finden Sie auf der Wiki -Seite.
TVOIDRESULT enthält OK -Flag- oder Fehlertyp wie in Go oder Rost Languages. Es ist ein spezialisierter Tresult -Typ ohne Wert.
uses
utils.result;
type
generic TVoidResult<E> = classWeitere Details finden Sie auf der Wiki -Seite.
TDataSize -Klasse bietet die Schnittstelle zur Manipulation von Datengrößen.
uses
utils.datasize;
type
TDataSize = classWeitere Details finden Sie auf der Wiki -Seite.
Die TimeInterval -Klasse bietet die Schnittstelle zur Manipulation von Zeitintervallen.
uses
utils.timeinterval;
type
TTimeInterval = classWeitere Details finden Sie auf der Wiki -Seite.
TPAIR -Klasse paart ein Wertepaar zusammen, das von verschiedenen Typen (T1 und T2) sein kann. Die einzelnen Werte können zuerst und zweiten über seine öffentlichen Mitglieder zugegriffen werden, wie in C ++ - Sprache.
uses
utils.pair;
type
generic TPair<T1, T2> = classWeitere Details finden Sie auf der Wiki -Seite.
TTUPLE ist ein Objekt, das eine Sammlung von Elementen abhält. Jedes Element kann von einem anderen Typ sein, wie in C ++ - Sprache.
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> = classWeitere Details finden Sie auf der Wiki -Seite.
TVARIANT ist eine Klassenvorlage, die eine Typ-Safe-Gewerkschaft darstellt. Eine Instanz von TVariant hat zu einem bestimmten Zeitpunkt entweder einen Wert eines seiner alternativen Typen.
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> = classWeitere Details finden Sie auf der Wiki -Seite.
Functor ist ein Beispiel einer Klasse mit Call der Mitgliederfunktion. Mit dieser Mitgliedsfunktion kann das Objekt mit derselben Syntax wie ein regulärer Funktionsaufruf verwendet werden. Daher kann sein Typ als Vorlagenparameter verwendet werden, wenn ein generischer Funktionstyp erwartet wird.
uses
utils.functor;
type
generic TUnaryFunctor<V, R> = classWeitere Details finden Sie auf der Wiki -Seite.
Functor ist ein Beispiel einer Klasse mit Call der Mitgliederfunktion. Mit dieser Mitgliedsfunktion kann das Objekt mit derselben Syntax wie ein regulärer Funktionsaufruf verwendet werden. Daher kann sein Typ als Vorlagenparameter verwendet werden, wenn ein generischer Funktionstyp erwartet wird.
uses
utils.functor;
type
generic TBinaryFunctor<V, R> = classWeitere Details finden Sie auf der Wiki -Seite.
Es ist ein spezieller Vergleichenfunktion, der alle Zeiten 0 (Null) zurückgibt. Reale Werte nicht verwendet. Dieser Funkor kann für Container für nicht absetzbare Werte verwendet werden.
uses
utils.functor;
type
TUnsortableFunctor =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>);Weitere Details finden Sie auf der Wiki -Seite.
Es ist ein Functor, der einen negativen Wert zurückgibt, wenn Avalue1 vor Avalue2 sortiert werden sollte, ein positiver Wert, wenn Avalue1 nach Avalue2, Null sortiert werden sollte, wenn Avalue1 und Avalue2 gleich sind.
uses
utils.functor;
type
generic TDefaultCompareFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>)
public
function Call (AValue1, AValue2 : V) : Integer;
end ;Weitere Details finden Sie auf der Wiki -Seite.
Es ist ein Functor, der true zurückgibt, wenn Avalue1 <Avalue2.
uses
utils.functor;
type
generic TDefaultLessFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);Weitere Details finden Sie auf der Wiki -Seite.
Es ist ein Functor, der true zurückgibt, wenn avalue1> avalue2.
uses
utils.functor;
type
generic TDefaultGreaterFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);Weitere Details finden Sie auf der Wiki -Seite.
Es ist ein Functor, der true zurückgibt, wenn avalue1 = avalue2.
uses
utils.functor;
type
generic TDefaultEqualFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);Weitere Details finden Sie auf der Wiki -Seite.
Es handelt sich um einen Functor, der einen negativen Wert zurückgibt, wenn die Taste des Paares 1 vor Pair 2 -Taste sortiert werden sollte. Ein positiver Wert, wenn die Taste der Paar 1 nach Pair 2 -Taste sortiert werden sollte, Null, wenn die Taste Pair 1 -Taste und die Paar -2 -Taste gleich sind.
uses
utils.functor, utils.pair;
uses
generic TDefaultPairKeyCompareFunctor<K, V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor
< { $IFDEF FPC } specialize { $ENDIF } TPair<K, V>, Integer>)Weitere Details finden Sie auf der Wiki -Seite.
Api.cstring ist ein Wrapper um C -Sprache api cstring char * Wert.
uses
utils.api.cstring;
type
API = class
type
CString = class
end ;Weitere Details finden Sie auf der Wiki -Seite.
TarrayErrorsStack ist ein generischer Stapel über eine Array von T, die Fehlercodes enthält.
uses
utils.errorsstack;
type
generic TArrayErrorsStack<T> = classWeitere Details finden Sie auf der Wiki -Seite.
TlisterRorsStack ist generischer Stapel über die Liste der T -Klassen, die Fehlercodes enthält.
uses
utils.errorsstack;
type
generic TListErrorsStack<T> = classWeitere Details finden Sie auf der Wiki -Seite.
Tforwarditerator ist eine Basisklasse für Iteratoren für benutzerdefinierte Vorwärtsrichtung.
uses
utils.enumerate;
type
generic TForwardIterator<V, Iterator> = classWeitere Details finden Sie auf der Wiki -Seite.
Tbidirectionaliterator ist eine Basisklasse für Iteratoren für benutzerdefinierte Vorwärts- und Rückwärtsrichtungen.
uses
utils.enumerate;
type
generic TBidirectionalIterator<V, Iterator> = classWeitere Details finden Sie auf der Wiki -Seite.
Die Tenumeratorklasse fügt einen iterbaren Objekt hinzu, was Iterator basierend auf Tforwarditerator oder Tbidirectionaliterator hat, und gibt es wie in einer Pythonsprache zurück (das aufzählige Objekt).
uses
utils.enumerate;
type
generic TEnumerator<V, Iterator> = classWeitere Details finden Sie auf der Wiki -Seite.
Die TFilterenumerator -Klasse bietet den Filterverlust von UnaryFunctor.
uses
utils.enumerate, utils.functor;
type
generic TFilterEnumerator<V, Iterator, Functor> = classFunctor basiert auf utils.functor.tunaryFunctor -Schnittstelle und wird zum Filtern der Elementwert verwendet.
Weitere Details finden Sie auf der Wiki -Seite.
Takkumulierte akkumulierte Werte unter Verwendung von Binärfunktionen (angegeben über das Functor -Argument).
uses
utils.functional, utils.functor;
type
generic TAccumulate<V, Iterator, Functor> = classFunctor basiert auf utils.functor.tBinaryFunctor -Schnittstelle und wird verwendet, um den Ergebniswert zu akkumulieren.
Weitere Details finden Sie auf der Wiki -Seite.
TMAP anwendet den angegebenen Functor auf jedes Element eines bestimmten iterablen Objekts).
uses
utils.functional, utils.functor;
type
generic TMap<V, Iterator, Functor> = classFunctor basiert auf utils.functor.tunaryFunctor -Schnittstelle und wird verwendet, um den Artikelwert zu ändern.
Weitere Details finden Sie auf der Wiki -Seite.