Einfache Typen
Die Sprache erlaubt Werte der folgenden einfachen Typen:
- Zahlen
- Saiten
- Boolescher Wert
- Null
- Andere Typen
Zahlen
Alle Zahlen (gerade Ganzzahlen) werden durch IEEE 754-Fließkommawerte dargestellt. Ganzzahlen bis 2^54 haben exakte Repräsentationen. Numerische Werte können wie folgt dargestellt werden:
- Dezimalzahlen mit und ohne Vorzeichen (Beispiele: 10, -5)
- Reelle Zahlen mit Dezimalstellen (10,5, 3,14159)
- Reelle Zahlen mit Exponenten (1,0e+10)
- Hexadezimalzahlen (0xffff0000)
NetScaler-Richtlinienausdrücke haben drei numerische Typen:
- 32-Bit-Ganzzahlen (num_at)
- 64-Bit-Ganzzahlen (unsigned_long_at)
- 64-Bit-Fließkomma (double_at)
All diese Werte werden in den Zahlentyp umgewandelt, wenn sie an eine Erweiterungsfunktion übergeben werden, und Zahlen werden in den erwarteten numerischen Richtlinientyp konvertiert, wenn sie zurückgegeben werden.
Saiten
Zeichenketten sind Bytefolgen beliebiger Länge. Sie entsprechen dem Policy-Typ text_at. Zeichenketten können Null (0x00) Byte enthalten. Beliebige Binärdaten können in Zeichenketten gespeichert werden, einschließlich einer beliebigen Zeichencode-Repräsentation (z. B. UTF-8 und vollständiger Unicode). Zeichenkettenfunktionen wie string.upper () gehen jedoch von 8-Bit-ASCII aus.
Zeichenketten werden automatisch zugewiesen, wenn sie verwendet werden. Es ist nicht notwendig (oder gar möglich), explizit Puffer für Zeichenketten zuzuweisen. Zeichenketten werden außerdem automatisch durch die Speicherbereinigung freigegeben, wenn sie nicht mehr verwendet werden. Es ist nicht nötig (oder gar möglich), Zeichenketten explizit freizugeben. Durch diese automatische Zuweisung und Deallokation werden einige häufig auftretende Probleme in Sprachen wie C vermieden, wie Speicherlecks und hängende Zeiger.
Zeichenkettenliterale sind Zeichenketten, die in doppelte oder einfache Anführungszeichen gesetzt sind. Es gibt keinen Unterschied zwischen den beiden Arten von Anführungszeichen: „a string literal“ ist dasselbe wie „a string literal“. Die übliche Maskierung mit umgekehrtem Schrägstrich ist verfügbar:\ s (Glocke),\ b (Rücktaste),\ f (Formularfeed),\ n (Zeilenumbruch),\ t (horizontaler Tabulator),\\ (umgekehrter Schrägstrich),\ “(doppeltes Anführungszeichen) und\ ‘(einfaches Anführungszeichen). Dezimale Bytewerte können durch einen umgekehrten Schrägstrich und eine bis drei Ziffern (\ d,\ dd,\ ddd) eingegeben werden. Hexadezimale Bytewerte können durch einen umgekehrten Schrägstrich, ein X und zwei Hexadezimalzahlen (\ xhh) eingegeben werden
Eine spezielle Syntax, die sogenannte Notation mit langen Klammern, kann für lange, mehrzeilige Zeichenkettenliterale verwendet werden. Diese Notation schließt die Zeichenfolge in doppelte eckige Klammern mit null oder mehr Gleichheitszeichen zwischen den Klammern ein. Die Idee ist, eine Kombination aus Klammern und Gleichungen zu finden, die nicht in der Zeichenfolge enthalten ist. In der Zeichenfolge werden keine Escape-Sequenzen berücksichtigt. Beispiele:
[[Dies ist eine mehrzeilige Zeichenfolge mit langer Klammerschreibweise.]]
[= [Dies ist eine mehrzeilige Zeichenfolge in langer Schreibweise mit [[und]] und einem unesmaskierten Zeichen darin.] =]
Langklammer Notation kann verwendet werden, um einen mehrzeiligen Kommentar zu machen. Beispiel:
– [[ Dies ist ein mehrzeiliger Kommentar. –]]
Boolescher Wert
Die üblichen booleschen Werte „wahr“ und „falsch“ werden bereitgestellt. Beachten Sie, dass boolesche Werte sich von Zahlenwerten unterscheiden, im Gegensatz zu C, wo Null als falsch angenommen wird und jeder Wert ungleich Null als wahr angenommen wird.
Null
Null ist ein besonderer Wert, der „kein Wert“ bedeutet. Es ist ein eigener Typ und entspricht keinem anderen Wert, im Gegensatz zu C, wo NULL als Null definiert ist.
Andere Typen
Es gibt zwei weitere Typen, Benutzerdaten und Threads. Dies sind fortgeschrittene Themen und werden hier nicht behandelt.