function
구문
function function-name (argument-list) { ... result return-value; }
function function-name () { param param-name1; param param-name2; param param-name3 = default-value; ... result return-value; }
설명
XPath 표현식에서 사용할 수 있는 확장 함수를 정의합니다. 문은 function
함수 식별자에 대해 정규화된 이름을 사용하여 스크립트에서 최상위 문으로 정의되어야 합니다. 인수 목록은 쉼표로 구분된 매개 변수 이름 목록으로, 함수 호출에 따라 위치적으로 할당됩니다. 후행 인수에는 기본값이 있을 수 있습니다. 또는 명령문을 사용하여 function 블록 내부에 함수 파라미터를 정의할 수 있습니다 param
. 함수 본문은 함수의 반환 값을 정의하는 문을 포함해야 result
하는 문 집합입니다.
함수 호출에 정의보다 적은 인수가 있는 경우, 모든 후행 인수에 기본값이 사용됩니다. 함수 호출에 정의보다 더 많은 인수가 있는 경우 함수 호출은 오류를 생성합니다.
특성
function-name |
함수의 이름을 정규화된 이름으로 지정합니다. |
argument-list |
함수 호출에 따라 위치적으로 할당되는 매개 변수 이름의 쉼표로 구분된 목록입니다. 후행 인수에는 기본값이 있을 수 있습니다. |
return-value |
XML 요소 또는 XPath 식, 스칼라 값 또는 함수의 반환 값을 제공하는 명령 집합입니다. |
SLAX 예제
다음 예제에서는 , , 및 scale
의 세 가지 매개 변수가 height
width
있는 함수를 size
정의합니다. 의 scale
기본값은 1입니다. 함수 호출 인수 목록에 인수가 scale
포함되어 있지 않으면 계산은 해당 인수에 대해 기본값 1을 사용합니다. 함수의 반환 값은 요소로 묶인 , 및 변수의 곱width
입니다<size>
.scale
height
기본 일치 템플릿에서 함수 호출은 원본 XML 파일의 각 graphic/dimension
요소에서 선택한 너비 및 높이 데이터를 사용합니다. 스크립트는 함수를 평가하고, 문은 copy-of
반환 값을 요소의 내용 <out>
으로 결과 트리에 내보냅니다.
version 1.1; ns my = "http://www.example.com/myfunctions"; function my:size ($width, $height, $scale = 1) { result <size> { expr $width * $height * $scale; } } match / { for-each (graphic/dimension) { <out> { copy-of my:size((width/.), (height/.)); } } }
릴리스 정보
Junos OS 릴리스 12.2 이상에서 지원되는 SLAX 언어 버전 1.1에서 소개된 명령문입니다.