42.2. PL/스포츠 토토 결과 기능 및 인수#

에서 함수를 생성하려면pl/스포츠 토토 결과언어, 표준 사용함수 만들기구문 :

함수 만들기funcName(Argument-types) 반환return-type$$
    # pl/스포츠 토토 결과 기능 본문
$$ 언어 pltcl;

pl/스포츠 토토 결과u언어가로 지정되어야한다는 점을 제외하고는 동일합니다.pl스포츠 토토 결과u.

함수의 본문은 단순히 스포츠 토토 결과 스크립트입니다. 함수가 호출되면 인수 값은 스포츠 토토 결과 스크립트로 전달됩니다.1 ... n. 결과는 A와 함께 일반적인 방식으로 스포츠 토토 결과 코드에서 반환됩니다.return진술. 절차에서 스포츠 토토 결과 코드의 반환 값은 무시됩니다.

예를 들어, 두 개의 정수 값 중 더 큰 것을 반환하는 함수는 다음과 같이 정의 될 수 있습니다.

함수 생성 스포츠 토토 결과_max (정수, 정수) 정수를 $$로 반환합니다
    if $ 1 $ 2 return $ 1
    $ 2를 반환합니다
$$ 언어 pltcl 엄격한;

조항 참고엄격한, NULL 입력 값에 대해 생각하지 않아도됩니다. NULL 값이 전달되면 함수는 전혀 호출되지 않지만 자동으로 NULL 결과를 반환합니다..

NAMPLEST 기능에서, 인수의 실제 값이 null이면 해당$n변수가 빈 문자열로 설정됩니다. 특정 인수가 null인지 여부를 감지하려면 함수를 사용하십시오ArgisNull. 예를 들어, 우리가 원한다고 가정 해스포츠 토토 결과_maxnull이 아닌 말이 아닌 인수를 반환하기 위해 하나의 null과 하나의 unnull 인수가 있습니다 :

함수 만들기 스포츠 토토 결과_max (정수, 정수)는 정수를 $$로 반환합니다
    [ArgisNull 1] 인 경우
        if [ArgisNull 2] return_null
        $ 2를 반환합니다

    if [ArgisNull 2] return $ 1
    if $ 1 $ 2 return $ 1
    $ 2를 반환합니다
$$ 언어 pltcl;

위와 같이, pl/스포츠 토토 결과 함수에서 null 값을 반환하려면 executereturn_null. 기능이 엄격한 지 여부에 관계없이 수행 할 수 있습니다.

복합 유형 인수는 스포츠 토토 결과 어레이로 기능으로 전달됩니다. 배열의 요소 이름은 복합 유형의 속성 이름입니다. 전달 된 행의 속성에 널 값이 있으면 배열에 나타나지 않습니다. 예는 다음과 같습니다.

테이블 직원 생성 (
    이름 텍스트,
    급여 정수,
    시대 정수
);

기능 초과 지불 (직원)을 작성하여 부울을 $$로 반환합니다
    if 200000.0 <$ 1 (급여) 
        "T"반환

    if $ 1 (Age) <30 && 100000.0 <$ 1 (Salary) 
        "T"반환

    "F"반환
$$ 언어 pl스포츠 토토 결과;

PL/스포츠 토토 결과 기능도 복합 유형 결과를 반환 할 수 있습니다. 이렇게하려면 스포츠 토토 결과 코드는 예상 결과 유형과 일치하는 열 이름/값 쌍의 목록을 반환해야합니다. 목록에서 생략 된 열 이름은 널로 반환되며 예기치 않은 열 이름이있는 경우 오류가 발생합니다. 예는 다음과 같습니다.

int, int, out squared int, out cubed int)를 $$로 만듭니다.
    반환 [목록 제곱 [expr $ 1 * $ 1] Cubed [expr $ 1 * $ 1 * $ 1]]
$$ 언어 pl스포츠 토토 결과;

절차의 출력 인수는 예를 들어 같은 방식으로 반환됩니다.

절차 작성 스포츠 토토 결과_triple (Integer, Inout B Integer) $$
    반환 [a list a [expr $ 1 * 3] b [expr $ 2 * 3]]
$$ 언어 pl스포츠 토토 결과;

스포츠 토토 결과_TRIPLE (5, 10); 전화하십시오.

결과 목록은 원하는 튜플의 배열 표현에서배열 get스포츠 토토 결과 명령. 예를 들어:

기능 작성 Raise_Pay (Employee, Delta Int)는 직원을 $$로 반환합니다
    세트 1 (급여) [expr $ 1 (급여) + $ 2]
    반환 [배열 get 1]
$$ 언어 pltcl;

pl/스포츠 토토 결과 함수는 세트를 반환 할 수 있습니다. 이렇게하려면 TCL 코드가 호출해야합니다return_next줄당 당 1 회 반환 할 때 스칼라 유형을 반환 할 때 적절한 값을 전달하거나 복합 유형을 반환 할 때 열 이름/값 쌍의 목록을 전달합니다. 다음은 스칼라 유형을 반환하는 예입니다.

함수 시퀀스 생성 (int, int)은 int를 $$로 반환합니다
    for set i $ 1 $ i <$ 2 incr i 
        return_next $ i

그리고 여기에 복합 유형을 반환하는 하나가 있습니다 :

기능 작성 table_of_squares (int, int) 반환 테이블 (x int, x2 int)을 $$로 반환합니다.
    for set i $ 1 $ i <$ 2 incr i 
        return_next [list x $ i x2 [expr $ i * $ i]]

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면