Pascalutils는 구문이 허용하는 한 다른 현대 언어와 유사한 구문 설탕을 구현하는 Delphi 및 Freepascal의 객체 라이브러리입니다.
도서관이 테스트되었습니다
소스를 가져 와서 소스 디렉토리를 프로젝트 검색 경로에 추가하십시오. FPC의 경우 소스 디렉토리를 FPC.CFG 파일에 추가하십시오.
저장소 git clone https://github.com/isemenkov/pascalutils 복제하십시오.
사용하려는 단위를 uses 절에 추가하십시오.
Tany Class는 단일 값의 유형-안전 컨테이너를 설명합니다.
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 페이지를 참조하십시오 .
TVoidresult에는 Go 또는 Rust Languages와 같은 OK 플래그 또는 오류 유형이 포함되어 있습니다. 값이없는 특수 트레스 유형입니다.
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 페이지를 참조하십시오 .
functor는 멤버 함수 Call 정의 된 클래스의 인스턴스입니다. 이 멤버 기능을 사용하면 객체를 일반 기능 호출과 동일한 구문으로 사용할 수 있으므로 일반 기능 유형이 예상 될 때 유형을 템플릿 매개 변수로 사용할 수 있습니다.
uses
utils.functor;
type
generic TUnaryFunctor<V, R> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
functor는 멤버 함수 Call 정의 된 클래스의 인스턴스입니다. 이 멤버 기능을 사용하면 객체를 일반 기능 호출과 동일한 구문으로 사용할 수 있으므로 일반 기능 유형이 예상 될 때 유형을 템플릿 매개 변수로 사용할 수 있습니다.
uses
utils.functor;
type
generic TBinaryFunctor<V, R> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
항상 0 (0)을 반환하는 특별 비교 함수입니다. 실제 값은 사용되지 않습니다. 이 기능은 불완전한 값의 용기에 사용될 수 있습니다.
uses
utils.functor;
type
TUnsortableFunctor =
class ( { $IFDEF FPC } specialize { $ENDIF } TBinaryFunctor<V, Integer>);자세한 내용은 Wiki 페이지를 참조하십시오 .
avalue1을 정렬하기 전에 avalue1을 정렬 해야하는 경우 음의 값을 반환하는 기능인입니다. avalue1 및 avalue2가 동일하면 avalue1을 정렬 해야하는 경우 양수 값입니다.
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 페이지를 참조하십시오 .
쌍 1 키를 쌍 2 키 전에 정렬 해야하는 경우 음의 값을 반환하는 펀치 (functor), 페어 1 키 후에 페어 1 키를 정렬 해야하는 경우 양수 값, 쌍 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>)자세한 내용은 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 페이지를 참조하십시오 .
TforwardEriterator는 사용자 정의 전진 방향 반복자의 기본 클래스입니다.
uses
utils.enumerate;
type
generic TForwardIterator<V, Iterator> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
Tbidirectionaliterator는 사용자 정의 전방 및 후진 방향 반복자의 기본 클래스입니다.
uses
utils.enumerate;
type
generic TBidirectionalIterator<V, Iterator> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
Tenumerator Class는 반복적 인 객체에 반복적 인 객체에 반복적 인 객체를 추가하여 tforwarderiterator 또는 tbidirectionaliterator를 기반으로 한 반복자가있는 것과 같은 파이썬 언어와 같이 (열거 된 객체)를 반환합니다.
uses
utils.enumerate;
type
generic TEnumerator<V, Iterator> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
tfilterenumerator class는 unaryfunctor의 필터링 열거자를 제공합니다.
uses
utils.enumerate, utils.functor;
type
generic TFilterEnumerator<V, Iterator, Functor> = classfunctor는 utils.functor.tunaryfunctor 인터페이스를 기반으로하며 항목 값을 필터링하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
이진 함수 (functor 인수를 통해 지정 됨)를 사용하여 축적 된 축적 값.
uses
utils.functional, utils.functor;
type
generic TAccumulate<V, Iterator, Functor> = classfunctor는 utils.functor.tbinary -functor 인터페이스를 기반으로하며 결과 값을 축적하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
주어진 반복적 인 객체의 각 항목에 주어진 unftor를 적용하는 tmap).
uses
utils.functional, utils.functor;
type
generic TMap<V, Iterator, Functor> = classfunctor는 utils.functor.tunaryfunctor 인터페이스를 기반으로하며 항목 값을 수정하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .