Einfache Typen

Die Sprache erlaubt Werte der folgenden einfachen Typen:

  • Ziffern
  • Saiten
  • Boolesch
  • Nil
  • Andere Typen

Ziffern

Alle Zahlen (gerade ganze Zahlen) werden durch IEEE 754-Gleitkommawerte dargestellt. Ganzzahlen bis zu 2^54 haben genaue Darstellungen. Numerische Werte können dargestellt werden durch:

  • Ganzzahlen mit Vorzeichen und ohne Vorzeichen (Beispiele: 10, -5)
  • Reelle Zahlen mit Dezimalstellen (10,5, 3,14159)
  • Reelle Zahlen mit Exponenten (1.0e+10)
  • Hexadezimale (0xffff0000)

Citrix ADC Richtlinienausdrücke haben drei numerische Typen:

  • 32-Bit-Ganzzahlen (num_at)
  • 64-Bit-Ganzzahlen (unsigned_long_at)
  • 64-Bit-Gleitkommazahl (double_at)

Alle diese werden in den Zahlentyp konvertiert, wenn sie an eine Erweiterungsfunktion übergeben werden, und Zahlen werden in den erwarteten numerischen Richtlinientyp konvertiert, wenn sie zurückgegeben werden.

Saiten

Strings sind Byte-Sequenzen beliebiger Länge. Sie entsprechen dem Typ text_at. Strings können null (0x00) Bytes enthalten. Beliebige Binärdaten können in Strings gespeichert werden, einschließlich jeder Zeichencode-Darstellung (z. B. UTF-8 und vollständiger Unicode). String-Funktionen wiestring.upper() nehmen jedoch 8-Bit-ASCII an.

Strings werden automatisch zugewiesen, wenn sie verwendet werden. Es besteht keine Notwendigkeit (oder sogar Möglichkeit), Puffer für Strings explizit zuzuweisen. Zeichenfolgen werden auch automatisch von der Garbage Collection freigegeben, wenn sie nicht mehr verwendet werden. Es besteht keine Notwendigkeit (oder sogar Möglichkeit), Strings explizit freizumachen. Diese automatische Zuweisung und Freigabe vermeidet einige häufige Probleme in Sprachen wie C, wie Speicherlecks und baumelnde Zeiger.

Zeichenfolgenliterale sind Zeichenfolgen, die in doppelte oder einfache Anführungszeichen eingeschlossen sind. Es gibt keinen Unterschied zwischen den beiden Arten von Anführungszeichen: “ein Zeichenfolgenliteral” ist dasselbe wie ‘ein Zeichenfolgenliteral’. Das übliche Backslash Escaping ist verfügbar: \s (Glocke), \b (Rücktaste), \f (Seitenvorschub), \n (Zeilenvorschub), \t (horizontaler Tabulator), \\ (umgekehrter Schrägstrich), \” (doppeltes Anführungszeichen) und \’ (einfaches Anführungszeichen). Dezimalbyte-Werte können durch einen umgekehrten Schrägstrich und ein bis drei Ziffern (\d, \dd, \ddd) eingegeben werden. Hexadezimale Byte-Werte können durch einen umgekehrten Schrägstrich, ein \x und zwei Hexadezimalstellen (\xhh) eingegeben werden.

Ein spezieller Syntaxaufruf der Langklammernotation kann für lange, mehrzeilige Zeichenfolgenliterale verwendet werden. Diese Notation umschließt die Zeichenfolge in doppelten eckigen Klammern mit null oder mehr Gleichheitszeichen zwischen den Klammern — die Idee ist, eine Kombination von Klammern und Gleichen zu finden, die nicht in der Zeichenfolge ist. Es werden keine Escape-Sequenzen in der Zeichenfolge berücksichtigt. Beispiele:

[[Dies ist eine mehrzeilige Zeichenfolge mit langer Klammer Notation.]]

[= [Dies ist eine mehrzeilige Zeichenfolge, die eine lange Notation mit [[und] und einer nicht esaped darin verwendet ].] =]

Langklammer Notation kann verwendet werden, um einen mehrzeiligen Kommentar zu machen. Beispiel:

—[[ Dies ist ein mehrzeiliger Kommentar. –]]

Boolesch

Die üblichen booleschen Werte true und false werden bereitgestellt. Beachten Sie, dass boolesche Werte sich von Zahlenwerten unterscheiden, im Gegensatz zu C, wobei Null als falsch angenommen wird und jeder Wert ungleich Null true ist.

Nil

nil ist ein spezieller Wert, der “kein Wert” bedeutet. Es ist sein eigener Typ und entspricht keinem anderen Wert, im Gegensatz zu C, wo NULL als Null definiert ist.

Andere Typen

Es gibt zwei andere Typen, Benutzerdaten und Threads. Dies sind fortgeschrittene Themen und werden hier nicht behandelt.

Einfache Typen