함수를 생성하려면젠 토토/Tcl언어, 표준을 사용하세요 통사론:
함수 생성기능 이름 (인수 유형) 반환반환 유형AS '
# 젠 토토/Tcl 함수 본문
' 언어 pltcl;
젠 토토/TclU동일하지만, 언어는 다음과 같이 지정되어야 합니다.젠 토토tclu.
함수 본문은 단순히 Tcl 스크립트의 일부입니다. 언제 함수가 호출되면 인수 값이 다음과 같이 전달됩니다. 변수$1 ... $nTcl에 스크립트. 결과는 일반적인 Tcl 코드에서 반환됩니다. 그런데, a반환진술.
예를 들어, 두 정수 중 더 큰 값을 반환하는 함수 값은 다음과 같이 정의될 수 있습니다.
CREATE FUNCTION tcl_max(정수, 정수) 정수 AS '를 반환합니다.
if $1 $2 $1 반환
2달러를 돌려주다
' 언어 pltcl STRICT;
조항 참고엄격, 저장 null 입력 값에 대해 생각할 필요가 없습니다. null 값인 경우 전달되면 함수는 전혀 호출되지 않지만 단지 자동으로 null 결과를 반환합니다.
엄격하지 않은 함수에서 인수의 실제 값이 다음과 같은 경우
null, 해당$n변수는 빈 값으로 설정됩니다
끈. 특정 인수가 null인지 여부를 검색하려면 다음을 사용하세요.
기능argisnull. 예를 들어
우리가 원했던 것tcl_max하나로
null이 아닌 인수를 반환하려면 null과 하나의 null이 아닌 인수를 사용하세요.
null이 아닌:
CREATE FUNCTION tcl_max(정수, 정수) 정수 AS '를 반환합니다.
if [argisnull 1]
if [argisnull 2] return_null
2달러를 돌려주다
if [argisnull 2] $1 반환
if $1 $2 $1 반환
2달러를 돌려주다
' 언어 pltcl;
위에 표시된 대로 젠 토토/Tcl 함수에서 null 값을 반환하려면, 실행하다return_null. 이것은 할 수 있습니다 기능이 엄격한지 아닌지.
복합 유형 인수는 Tcl로 함수에 전달됩니다. 배열. 배열의 요소 이름은 다음의 속성 이름입니다. 복합형. 전달된 행의 속성에 null 값이면 배열에 표시되지 않습니다. 여기는 예:
CREATE TABLE 직원(
이름 텍스트,
급여 정수,
연령 정수
);
CREATE FUNCTION 초과 지급(직원) RETURNS boolean AS '
if 200000.0 < $1(급여)
"t"를 반환
if $1(연령) < 30 && 100000.0 < $1(급여)
"t"를 반환
"f"를 반환
' 언어 pltcl;
현재 복합 유형 반환은 지원되지 않습니다. 결과 값입니다.