Pascalutils是Delphi的對像庫,並且在語法允許的情況下,實現與其他現代語言相似的句法糖的數據結構。
圖書館已測試
獲取來源並將源目錄添加到項目搜索路徑中。對於FPC,將源目錄添加到fpc.cfg文件中。
克隆存儲庫git clone https://github.com/isemenkov/pascalutils 。
將要使用的單元添加到uses條款中。
Tany類描述一個用於單個值的類型安全容器。
uses
utils.any;
type
generic TAny<T> = class上層類代表一個可選的值:每個上頂都包含一個值,或者不像Rust Lang中的值。
uses
utils.optional;
type
generic TOptional<T> = class有關Wiki頁面上的更多詳細信息。
結果類型通常包含返回的值或錯誤,並且可以在整個GO程序中提供常見(值,err)模式無處不在的一流封裝。
uses
utils.result;
type
generic TResult<V, E> = class有關Wiki頁面上的更多詳細信息。
TVIODRESULT包含OK標誌或錯誤類型,例如GO或Rust語言。這是一種沒有價值的專業Tresult類型。
uses
utils.result;
type
generic TVoidResult<E> = class有關Wiki頁面上的更多詳細信息。
TDATASIZE類提供操縱數據大小的接口。
uses
utils.datasize;
type
TDataSize = class有關Wiki頁面上的更多詳細信息。
TTimeInterval類提供操作時間間隔的接口。
uses
utils.timeinterval;
type
TTimeInterval = class有關Wiki頁面上的更多詳細信息。
tpair類夫婦在一起一對值,可能是不同類型的(T1和T2)。單個值可以通過其首先和第二個公共成員訪問,例如C ++語言。
uses
utils.pair;
type
generic TPair<T1, T2> = class有關Wiki頁面上的更多詳細信息。
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有關Wiki頁面上的更多詳細信息。
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有關Wiki頁面上的更多詳細信息。
函子是定義具有成員函數Call的類的實例。此成員函數允許對象與常規函數調用相同的語法使用,因此,當預期通用函數類型時,可以將其類型用作模板參數。
uses
utils.functor;
type
generic TUnaryFunctor<V, R> = class有關Wiki頁面上的更多詳細信息。
函子是定義具有成員函數Call的類的實例。此成員函數允許對象與常規函數調用相同的語法使用,因此,當預期通用函數類型時,可以將其類型用作模板參數。
uses
utils.functor;
type
generic TBinaryFunctor<V, R> = class有關Wiki頁面上的更多詳細信息。
這是一個特殊的比較函子,始終返回0(零)。實際值未使用。該函子可用於無法分配值的容器。
uses
utils.functor;
type
TUnsortableFunctor =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>);有關Wiki頁面上的更多詳細信息。
它是一個函子,如果應在Avalue2之前對Avalue1進行排序,則返回負值,如果應在Avalue2之後對Avalue1進行排序,則為正值,如果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 ;有關Wiki頁面上的更多詳細信息。
如果Avalue1 <avalue2,它是函數返回true。
uses
utils.functor;
type
generic TDefaultLessFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);有關Wiki頁面上的更多詳細信息。
如果Avalue1> Avalue2,它是函數返回true的函數。
uses
utils.functor;
type
generic TDefaultGreaterFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);有關Wiki頁面上的更多詳細信息。
如果Avalue1 = Avalue2,它是函數返回true的函數。
uses
utils.functor;
type
generic TDefaultEqualFunctor<V> =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Boolean>);有關Wiki頁面上的更多詳細信息。
如果應在對2鍵之前對PAIR 1鍵進行排序,則它是函數,如果配對1鍵在Pair 2鍵進行排序,則為正值,如果Pair 2鍵進行排序,則零,如果PAIR 1鍵和Pair 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>)有關Wiki頁面上的更多詳細信息。
api.cstring是圍繞C語言API CSTRING char *值的包裝器。
uses
utils.api.cstring;
type
API = class
type
CString = class
end ;有關Wiki頁面上的更多詳細信息。
TarrayerrorsStack是包含錯誤代碼的T數組的通用堆棧。
uses
utils.errorsstack;
type
generic TArrayErrorsStack<T> = class有關Wiki頁面上的更多詳細信息。
TlisterRorsStack是包含錯誤代碼的T類列表的通用堆棧。
uses
utils.errorsstack;
type
generic TListErrorsStack<T> = class有關Wiki頁面上的更多詳細信息。
tforwarditerator是自定義前向方向迭代器的基類。
uses
utils.enumerate;
type
generic TForwardIterator<V, Iterator> = class有關Wiki頁面上的更多詳細信息。
tbidirectionaliterator是自定義向前和向後方向迭代器的基類。
uses
utils.enumerate;
type
generic TBidirectionalIterator<V, Iterator> = class有關Wiki頁面上的更多詳細信息。
Tenumerator類添加了基於tforwarditerator或tbidirectionaliterator的迭代對象的反面對象,並像python語言一樣返回(枚舉對象)。
uses
utils.enumerate;
type
generic TEnumerator<V, Iterator> = class有關Wiki頁面上的更多詳細信息。
TfilterEnumerator類提供通過Unary -unctunctor的過濾枚舉器。
uses
utils.enumerate, utils.functor;
type
generic TFilterEnumerator<V, Iterator, Functor> = class函數基於utils.functor.tunaryfunctor界面,用於過濾項目值。
有關Wiki頁面上的更多詳細信息。
使用二進制函數(通過函數參數指定)累積值。
uses
utils.functional, utils.functor;
type
generic TAccumulate<V, Iterator, Functor> = class函子基於utils.functor.tbinaryfunctor界面,用於累積結果值。
有關Wiki頁面上的更多詳細信息。
將給定函數應用於給定的觸覺對象的每個項目)。
uses
utils.functional, utils.functor;
type
generic TMap<V, Iterator, Functor> = class函數基於utils.functor.tunaryfunctor界面,用於修改項目值。
有關Wiki頁面上的更多詳細信息。