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页面上的更多详细信息。