에서 함수를 생성하려면젠 토토/TCL언어, 표준을 사용하십시오 통사론:
함수 만들기funcName(Argument-Types) 반환return-typeas ' # 젠 토토/tcl 기능 본문 '언어 젠 토토tcl;
젠 토토/tclu는 제외하고 동일합니다 언어는로 지정되어야한다.젠 토토tclu.
함수의 본문은 단순히 TCL 스크립트의 조각입니다. 언제 함수를 호출하고 인수 값은 다음과 같이 전달됩니다. 변수$ 1 ... $ntcl 스크립트. 결과는 평소의 TCL 코드에서 반환됩니다. 방법, Areturn진술.
예를 들어, 두 정수 중 더 큰 것을 반환하는 함수 값은 다음과 같이 정의 될 수 있습니다.
함수 만들기 tcl_max (정수, 정수) 정수를 반환합니다. if $ 1 $ 2 return $ 1 $ 2를 반환합니다 '언어 pltcl 엄격한;
조항 참고엄격한널 입력 값에 대해 생각하지 않아도 : 널 값인 경우 전달되면 기능은 전혀 호출되지 않지만 널 결과를 자동으로 반환하십시오.
인수의 실제 값이
널, 해당$n변수가 비어 있습니다
끈. 특정 인수가 무효인지 여부를 감지하려면 사용하십시오.
기능ArgisNull. 예를 들어, 가정하십시오
우리가 원했던tcl_max
하나와 함께
무시 무시한 인수를 반환하기위한 NULL과 하나의 unnull 인수,
널보다는 :
함수 만들기 tcl_max (정수, 정수) 정수를 반환합니다. [ArgisNull 1] 인 경우 if [ArgisNull 2] return_null $ 2를 반환합니다 if [ArgisNull 2] return $ 1 if $ 1 $ 2 return $ 1 $ 2를 반환합니다 '언어 pltcl;
위와 같이, 젠 토토/tcl 함수에서 널 값을 반환하려면, 실행하다return_null. 이것은 할 수 있습니다 기능이 엄격한 지 여부.
복합 유형 인수는 TCL과 같은 함수로 전달됩니다 배열. 배열의 요소 이름은 속성 이름입니다. 복합 유형. 전달 된 행의 속성이 NULL 값은 배열에 나타나지 않습니다. 여기에 있습니다 예:
테이블 직원 생성 ( 이름 텍스트, 급여 정수, 시대 정수 ); 함수 초과 지불 (직원) Boolean을 '로 반환합니다. if 200000.0 <$ 1 (급여) "T"반환 if $ 1 (Age) <30 && 100000.0 <$ 1 (Salary) "T"반환 "F"반환 '언어 pltcl;
현재 복합 유형을 반환하는 것에 대한 지원은 없습니다 결과 가치.