単純型

この言語では、次の単純なタイプの値を使用できます。

  • 数字
  • ストリング
  • ブーリアン型
  • ゼロ
  • その他のタイプ

数字

すべての数値 (整数も含む) は IEEE 754 浮動小数点値で表されます。2^54 までの整数は正確に表現されます。数値は次のように表すことができます。

  • 符号付きおよび符号なしの 10 進整数 (例:10、-5)
  • 小数点を含む実数 (10.5、3.14159)
  • 指数を含む実数 (1.0e+10)
  • Hexadecimals (0xffff0000)

NetScalerのポリシー表現には3つの数値タイプがあります。

  • 32 ビットの整数 (num_at)
  • 64 ビットの整数 (符号なし長整数)
  • 64 ビット浮動小数点 (double_at)

これらはすべて、拡張関数に渡されると数値型に変換され、数値は返されるときに必要なポリシー数値型に変換されます。

ストリング

文字列は任意の長さのバイトシーケンスです。これらはポリシーの text_at タイプに対応しています。文字列には NULL (0x00) バイトを含めることができます。任意のバイナリデータを、任意の文字コード表現 (UTF-8 や完全な Unicode など) を含む文字列に保持できます。ただし、 string.upper () のような文字列関数は 8 ビットの ASCII を前提としています。

文字列は使用時に自動的に割り当てられます。文字列にバッファを明示的に割り当てる必要はありません (あるいは方法さえありません)。また、文字列は使用されなくなると、ガベージコレクションによって自動的に割り当てが解除されます。文字列を明示的に解放する必要はありません (あるいは方法さえありません)。この自動割り当てと割り当て解除により、メモリリークやダングリングポインタなど、C 言語でよく発生する問題を回避できます。

文字列リテラルは、二重引用符または一重引用符で囲まれた文字列です。2 種類の引用符に違いはありません。「文字列リテラル」は「文字列リテラル」と同じです。通常のバックスラッシュエスケープには、\ s (ベル)、\ b (バックスペース)、\ f (フォームフィード)、\ n (改行/改行フィード)、\ t (水平タブ)、\\ (バックスラッシュ)、\ “(二重引用符)、\ ‘(一重引用符) があります。10 進数のバイト値は、バックスラッシュと 1 ~ 3 桁 (\ d、\ dd、\ ddd) で入力できます。16 進数のバイト値は、バックスラッシュ、x、および 2 桁の 16 進数 (\ xhh) で入力できます。

長い複数行の文字列リテラルには、長括弧表記という特別な構文を使用できます。この表記法では、文字列を二重の角括弧で囲み、括弧の間に0個以上の等号を付けます。つまり、文字列にはない括弧と等号の組み合わせを考え出すというものです。文字列にはエスケープシーケンスは指定されません。例:

[[これは長括弧表記を使用した複数行の文字列です。]]

[= [[and]] とエスケープされていない長い表記を使った複数行の文字列です。] =]

長い括弧表記は、複数行のコメントを作成するために使用することができます。例:

–[[ これは複数行のコメントです。 –]]

ブーリアン型

通常の true と false のブーリアン値が表示されます。0 が false、0 以外の値が true と見なされる C とは対照的に、ブール値は数値とは異なることに注意してください。

ゼロ

nil は「値なし」を意味する特別な値です。NULL がゼロと定義されている C とは対照的に、これは独自の型であり、他の値とは等しくありません。

その他のタイプ

他にユーザーデータとスレッドの 2 つのタイプがあります。これらは高度なトピックであり、ここでは説明しません。

単純型