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リリース14.2以降のリリースでサポートされているSLAX言語のバージョン1.2は、テンプレートと機能の両方の引数としてSLAX要素をサポートしています。

関数には、テンプレートに比べて次のような利点があります。

  • 引数は、名前ではなく位置で渡されます。

  • 結果ツリーフラグメントとは対照的に、戻り値はオブジェクトにすることができます。

  • 関数は式で使用できます。

  • 機能は動的に解決できます(EXSLT dyn:evaluate()を使用)。

SLAX では、関数定義をスクリプトのトップレベル ステートメントとして定義します。関数定義 function は、 キーワード、関数名、引数のセット、中括弧で区切られたコードブロックで構成されています。関数名は修飾名でなければなりません。引数リストは、関数呼び出しに基づいて位置割り当てられたパラメーター名のコンマ区切りのリストです。末尾の引数にはデフォルト値を設定できます。または、 ステートメントを使用して、関数ブロック内で関数パラメーターを param 定義することもできます。構文は次のとおりです。

戻り値には、スカラー値、XML 要素または XPath 式、または返される値を発行する一連の命令を指定できます。

関数呼び出しの引数の数が定義よりも少ない場合は、後続引数にデフォルト値が使用されます。関数の呼び出しに定義よりも多くの引数がある場合、関数呼び出しはエラーを生成します。

次の例では、 、 、および の 3 つのパラメーターheightwidthを持つ関数sizeを定義していますscale。のデフォルト値scaleは1です。関数呼び出し引数リストに引数が含scaleまれていない場合、計算はその引数にデフォルト値 1 を使用します。関数の戻り値は、 要素で囲まれた 、 、 height変数scalewidth積です<size>

メイン一致テンプレートでは、関数呼び出しでは、ソース XML ファイル内の各 graphic/dimension 要素から選択された幅と高さのデータを使用します。スクリプトは関数を評価し、 ステートメントは copy-of 要素の内容として戻り値を結果ツリーに <out> 出力します。

以下の関数定義では、コンマ区切りリストではなく、ステートメントを使用 param してパラメーターを定義します。関数の動作は、前の例と同じです。