Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX 기능 개요

Junos OS 릴리스 12.2 이상에서 지원되는 SLAX 언어의 버전 1.1은 기능을 지원합니다. 스크립트의 복잡성이 증가하거나 코드 세그먼트가 여러 곳에 나타나면 코드를 모듈화하고 기능을 생성할 수 있습니다. 함수는 인수를 수용하고 명시적으로 호출된 경우에만 실행됩니다.

참고:

Junos OS Release 14.2 이상에서 지원되는 SLAX 언어의 버전 1.2는 템플릿 및 기능 모두에 대한 인수로서 SLAX 요소를 지원합니다.

기능은 템플릿에 비해 다음과 같은 여러 이점을 제공합니다.

  • 인수는 이름이 아닌 위치에 의해 전달됩니다.

  • 반환 값은 결과 트리 패킷 조각이 아닌 객체가 될 수 있습니다.

  • 표현식에서 함수를 사용할 수 있습니다.

  • 기능은 동적으로 해결될 수 있습니다(EXSLT dyn:evaluate()를 사용).

SLAX에서는 스크립트에서 기능 정의를 최상위 명령문으로 정의합니다. 기능 정의는 키워드, 기능 이름, 인수 집합 및 중괄호 구분된 코드 블록으로 구성됩니다 function . 기능 이름은 적격 이름이어야 합니다. 인수 목록은 함수 호출에 따라 위치적으로 할당되는 매개 변수 이름의 쉼표로 구분된 목록입니다. 후행 인수는 기본값을 가질 수 있습니다. 또는 명령문을 사용하여 함수 블록 내에서 기능 매개변수를 정의할 param 수 있습니다. 구문은 다음과 같습니다.

반환 값은 확장 값, XML 요소 또는 XPath 표현식 또는 반환할 값을 내보내는 명령어 집합이 될 수 있습니다.

함수 호출에서 정의보다 인수가 적은 경우, 기본값은 추적 인수에 사용됩니다. 함수 호출에 정의보다 더 많은 인수가 있는 경우 함수 호출은 오류를 생성합니다.

다음 예제에서는 세 가지 매개 변수widthheightscale가 있는 함수size를 정의합니다. 기본값 scale 은 1입니다. 함수 호출 인수 목록에 인수가 scale 포함되지 않은 경우 계산은 해당 인수에 대해 1의 기본값을 사용합니다. 기능의 반환 값은 , 및 요소에 동봉된 변수의 width산물입니다<size>.scale height

메인 매치 템플릿에서 기능 호출은 Source XML 파일의 각 graphic/dimension 요소에서 선택된 너비와 높이 데이터를 사용합니다. 스크립트가 기능을 평가하고 명령 copy-of 문이 결과 트리에 대한 반환 값을 요소의 <out> 내용으로 내보내줍니다.

다음 기능 정의는 쉼표로 구분된 목록이 아닌 명령문을 사용하여 param 매개변수를 정의합니다. 기능의 동작은 이전 예제와 동일합니다.