Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX-Funktionen im Überblick

Version 1.1 der SLAX-Sprache, die in Junos OS Version 12.2 und höheren Versionen unterstützt wird, unterstützt Funktionen. Wenn die Komplexität eines Skripts zunimmt oder ein Codesegment an mehreren Stellen auftaucht, können Sie den Code modularisieren und Funktionen erstellen. Funktionen akzeptieren Argumente und werden nur ausgeführt, wenn sie explizit aufgerufen werden.

Hinweis:

Version 1.2 der SLAX-Sprache, die in Junos OS Version 14.2 und höheren Versionen unterstützt wird, unterstützt SLAX-Elemente als Argumente für Vorlagen und Funktionen.

Funktionen haben mehrere Vorteile gegenüber Vorlagen, darunter die folgenden:

  • Argumente werden nach Position und nicht nach Namen übergeben.

  • Bei den Rückgabewerten kann es sich nicht um Ergebnisstrukturfragmente, sondern um Objekte handeln.

  • Funktionen können in Ausdrücken verwendet werden.

  • Funktionen können dynamisch aufgelöst werden (mittels EXSLT dyn:evaluate()).

In SLAX definieren Sie eine Funktionsdefinition als Anweisung der obersten Ebene im Skript. Die Funktionsdefinition besteht aus dem Schlüsselwort, dem function Funktionsnamen, einer Reihe von Argumenten und einem durch geschweifte Klammern getrennten Codeblock. Der Funktionsname muss ein qualifizierter Name sein. Die Argumentliste ist eine durch Kommas getrennte Liste von Parameternamen, die basierend auf dem Funktionsaufruf positionsgebunden zugewiesen werden. Nachfolgende Argumente können Standardwerte haben. Alternativ können Sie mit der Anweisung Funktionsparameter innerhalb des Funktionsbausteins param definieren. Die Syntax lautet:

Bei dem Rückgabewert kann es sich um einen Skalarwert, ein XML-Element oder einen XPath-Ausdruck oder eine Reihe von Anweisungen handeln, die den zurückzugebenden Wert ausgeben.

Wenn der Funktionsaufruf weniger Argumente enthält als in der Definition, werden die Standardwerte für alle nachfolgenden Argumente verwendet. Wenn der Funktionsaufruf mehr Argumente enthält als die Definition, generiert der Funktionsaufruf einen Fehler.

Im folgenden Beispiel wird die Funktion sizedefiniert, die über drei Parameter verfügt: width, heightund scale. Der Standardwert für scale ist 1. Wenn die Argumentliste des Funktionsaufrufs das Argument scale nicht enthält, wird bei der Berechnung der Standardwert 1 für dieses Argument verwendet. Der Rückgabewert der Funktion ist das Produkt aus , und scale den Variablen, heightdie widthin einem <size> Element eingeschlossen sind.

In der Hauptübereinstimmungsvorlage verwendet der Funktionsaufruf Breiten- und Höhendaten, die aus jedem graphic/dimension Element in der XML-Quelldatei ausgewählt wurden. Das Skript wertet die Funktion aus, und die Anweisung gibt den Rückgabewert als Inhalt des Elements <out> an die copy-of Ergebnisstruktur aus.

In der folgenden Funktionsdefinition werden param Anweisungen verwendet, um die Parameter anstelle einer durch Trennzeichen getrennten Liste zu definieren. Das Verhalten der Funktion ist identisch mit dem im vorherigen Beispiel.