Pascalutils هي مكتبة كائن لـ Delphi و Freepascal من هياكل البيانات التي تنفذ السكر النحوي مماثلة لغات أخرى بقدر ما يسمح بناء الجملة.
تم اختبار المكتبة
احصل على المصادر وأضف دليل المصدر إلى مسار البحث عن المشروع. لـ FPC ، أضف دليل المصدر إلى ملف FPC.CFG .
استنساخ المستودع git clone https://github.com/isemenkov/pascalutils .
أضف الوحدة التي تريد استخدامها إلى شرط uses .
تصف Tany Class حاوية آمنة من النوع لقيمة واحدة.
uses
utils.any;
type
generic TAny<T> = classتمثل الفئة العليا قيمة اختيارية: كل أعلى هو قيمة ، أو لا ، كما في Lang Rust.
uses
utils.optional;
type
generic TOptional<T> = classمزيد من التفاصيل قراءة على صفحة الويكي.
تحتوي أنواع النتائج عادةً على قيمة أو خطأ تم إرجاعها ، ويمكن أن توفر تغليف من الدرجة الأولى لنمط (VALUE ، ERR) في كل مكان عبر برامج GO.
uses
utils.result;
type
generic TResult<V, E> = classمزيد من التفاصيل قراءة على صفحة الويكي.
يحتوي TvoidResult على علم OK أو نوع الخطأ كما هو الحال في لغات GO أو RUST. إنه نوع Tresult متخصص بدون قيمة.
uses
utils.result;
type
generic TVoidResult<E> = classمزيد من التفاصيل قراءة على صفحة الويكي.
يوفر فئة Tdatasize واجهة لمعالجة أحجام البيانات.
uses
utils.datasize;
type
TDataSize = classمزيد من التفاصيل قراءة على صفحة الويكي.
توفر فئة TTimeInterval الواجهة لمعالجة الفواصل الزمنية.
uses
utils.timeinterval;
type
TTimeInterval = classمزيد من التفاصيل قراءة على صفحة الويكي.
Tpair فئة الأزواج معا زوج من القيم ، والتي قد تكون من أنواع مختلفة (T1 و T2). يمكن الوصول إلى القيم الفردية من خلال أعضاءها العامين أولاً والثاني ، كما هو الحال في لغة C ++.
uses
utils.pair;
type
generic TPair<T1, T2> = classمزيد من التفاصيل قراءة على صفحة الويكي.
Ttuple هو كائن قادر على عقد مجموعة من العناصر. يمكن أن يكون كل عنصر من نوع مختلف ، كما في لغة 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> = classمزيد من التفاصيل قراءة على صفحة الويكي.
TVAriant هو قالب الفصل الذي يمثل اتحادًا آمنًا للأنواع. مثيل لـ TVAriant في أي وقت محدد إما يحمل قيمة لأحد أنواعه البديلة.
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> = classمزيد من التفاصيل قراءة على صفحة الويكي.
functor هو مثيل للفصل مع Call وظيفة وظيفة العضو. تسمح وظيفة العضو هذه باستخدام الكائن بنفس بناء الجملة مثل استدعاء الوظيفة العادية ، وبالتالي يمكن استخدام نوعه كمعلمة قالب عند توقع نوع وظيفة عامة.
uses
utils.functor;
type
generic TUnaryFunctor<V, R> = classمزيد من التفاصيل قراءة على صفحة الويكي.
functor هو مثيل للفصل مع Call وظيفة وظيفة العضو. تسمح وظيفة العضو هذه باستخدام الكائن بنفس بناء الجملة مثل استدعاء الوظيفة العادية ، وبالتالي يمكن استخدام نوعه كمعلمة قالب عند توقع نوع وظيفة عامة.
uses
utils.functor;
type
generic TBinaryFunctor<V, R> = classمزيد من التفاصيل قراءة على صفحة الويكي.
إنه مقارن خاص المقارنة الذي يعود 0 (صفر) في جميع الأوقات. القيم الحقيقية غير المستخدمة. يمكن استخدام هذا functor للحاويات للقيم غير القابلة للتشكيل.
uses
utils.functor;
type
TUnsortableFunctor =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>);مزيد من التفاصيل قراءة على صفحة الويكي.
إنه functor الذي يرجع قيمة سالبة إذا كان يجب فرز Avalue1 قبل Avalue2 ، وهي قيمة موجبة إذا كان يجب فرز Avalue1 بعد Avalue2 و Zero إذا كانت Avalue1 و Avalue2 متساوية.
uses
utils.functor;
type
generic TDefaultCompareFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>)
public
function Call (AValue1, AValue2 : V) : Integer;
end ;مزيد من التفاصيل قراءة على صفحة الويكي.
إنه functor الذي يعود بشكل صحيح إذا avalue1 <avalue2.
uses
utils.functor;
type
generic TDefaultLessFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);مزيد من التفاصيل قراءة على صفحة الويكي.
إنه functor الذي يعود صحيحًا إذا avalue1> avalue2.
uses
utils.functor;
type
generic TDefaultGreaterFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);مزيد من التفاصيل قراءة على صفحة الويكي.
إنه functor الذي يعود صحيحًا إذا avalue1 = avalue2.
uses
utils.functor;
type
generic TDefaultEqualFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);مزيد من التفاصيل قراءة على صفحة الويكي.
إنه functor الذي يرجع قيمة سالبة إذا كان ينبغي فرز مفتاح الزوج 1 قبل الزوج 2 مفتاح ، قيمة إيجابية إذا كان ينبغي فرز مفتاح الزوج 1 بعد الزوج 2 مفتاح ، صفر إذا كان مفتاح الزوج 1 ومفتاح الزوج 2 متساويين.
uses
utils.functor, utils.pair;
uses
generic TDefaultPairKeyCompareFunctor<K, V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor
< { $IFDEF FPC } specialize { $ENDIF } TPair<K, V>, Integer>)مزيد من التفاصيل قراءة على صفحة الويكي.
API.CSTRING هو غلاف حول C LANGUE API CSTRING char * .
uses
utils.api.cstring;
type
API = class
type
CString = class
end ;مزيد من التفاصيل قراءة على صفحة الويكي.
TarrayerRorsStack هو مكدس عام على مجموعة من T التي تحتوي على رموز الأخطاء.
uses
utils.errorsstack;
type
generic TArrayErrorsStack<T> = classمزيد من التفاصيل قراءة على صفحة الويكي.
TlisterRorsStack هو مكدس عام على قائمة فئات T التي تحتوي على رموز الأخطاء.
uses
utils.errorsstack;
type
generic TListErrorsStack<T> = classمزيد من التفاصيل قراءة على صفحة الويكي.
TforwardiTerator هي فئة أساسية لتكرار الاتجاه الأمامي المخصص.
uses
utils.enumerate;
type
generic TForwardIterator<V, Iterator> = classمزيد من التفاصيل قراءة على صفحة الويكي.
TBIDIRECTIONALITERATOR هي فئة أساسية للتكرار المخصص للأمام والخلف.
uses
utils.enumerate;
type
generic TBidirectionalIterator<V, Iterator> = classمزيد من التفاصيل قراءة على صفحة الويكي.
تضيف فئة Tenumerator مضادة إلى كائنات غير قابلة للتكرار التي تحتوي على tofrowniterator أو tbidirectionaliterator وإعادتها (كائن التعداد) كما هو الحال في لغة الثعبان.
uses
utils.enumerate;
type
generic TEnumerator<V, Iterator> = classمزيد من التفاصيل قراءة على صفحة الويكي.
يوفر فئة TfilterEnumerator تعداد التصفية بواسطة Unaryfunctor.
uses
utils.enumerate, utils.functor;
type
generic TFilterEnumerator<V, Iterator, Functor> = classيعتمد Functor على واجهة utils.functor.tunaryfunctor ويستخدم لتصفية قيمة العنصر.
مزيد من التفاصيل قراءة على صفحة الويكي.
Taccumulate القيم المتراكمة باستخدام وظائف ثنائية (محددة عبر وسيطة functor).
uses
utils.functional, utils.functor;
type
generic TAccumulate<V, Iterator, Functor> = classيعتمد Functor على واجهة utils.functor.tbinaryfunctor ويستخدم لتراكم قيمة النتائج.
مزيد من التفاصيل قراءة على صفحة الويكي.
TMAP تطبيق functor المعطى على كل عنصر من كائن معين معطى).
uses
utils.functional, utils.functor;
type
generic TMap<V, Iterator, Functor> = classيعتمد Functor على واجهة utils.functor.tunaryfunctor ويستخدم لتعديل قيمة العنصر.
مزيد من التفاصيل قراءة على صفحة الويكي.