简单类型

该语言允许以下简单类型的值:

  • 数字
  • 字符串
  • 布尔值
  • 其他类型

数字

所有数字(甚至整数)都由 IEEE 754 浮点值表示。不超过 2^54 的整数具有精确的表示形式。数值可以用以下方式表示:

  • 有符号和无符号十进制整数(示例:10、-5)
  • 带小数点的实数 (10.5、3.14159)
  • 带指数的实数 (1.0e+10)
  • 十六进制 (0xffff0000)

NetScaler 策略表达式有三种数字类型:

  • 32 位整数 (num_at)
  • 64 位整数(unsigned_long_at)
  • 64 位浮点数 (double_at)

所有这些在传递给扩展函数时都会转换为数字类型,返回时将数字转换为预期的策略数字类型。

字符串

字符串是任何长度的字节序列。它们对应于策略 text_at 类型。 字符串可以包含空 (0x00) 字节。任意二进制数据可以保存在字符串中,包括任何字符代码表示形式(例如 UTF-8 和完整的 Unicode)。但是, 像 string.upper () 这样的字符串 函数假设 8 位 ASCII。

字符串在使用时会自动分配。没有必要(甚至没有办法)为字符串显式分配缓冲区。不再使用字符串时,垃圾回收还会自动解除字符串的分配。没有必要(甚至没有办法)明确释放字符串。这种自动分配和解分配避免了 C 语言中的一些常见问题,例如内存泄漏和悬空指针。

字符串文字是用双引号或单引号括起来的字符串。这两种类型的引号没有区别:“字符串文字”与“字符串文字”相同。常用的反斜杠转义可用:\ s(bell)、\ b(退格)、\ f(换行符)、\ n(换行符/换行符)、\ t(横向制表符)、\\(反斜杠)、\“(双引号)和\ ‘(单引号)。十进制字节值可以通过反斜杠和一到三位数字(\ d、\ dd、\ ddd)输入。十六进制字节值可以通过反斜杠、x 和两个十六进制数字 (\ xhh) 输入

一种叫做长括号表示法的特殊语法可用于长多行字符串文字。这种表示法将字符串括在双方括号中,括号之间用零个或多个等号,其想法是想出字符串中不存在的方括号和等号的组合。字符串中不支持转义序列。下面是一些示例:

[[这是使用长括号表示法的多行字符串。]]

[= [这是一个多行字符串,使用长表示法,带有 [[和]],且其中未转义。] =]

长括号表示法可用于进行多行注释。示例:

–[[ 这是多行评论。 –]]

布尔值

提供了通常的真值和假布尔值。请注意,布尔值与数字值不同,而 C 则假定零为假,任何非零值均为真。

nil 是一个特殊值,表示“没有值”。它是它自己的类型,不等同于任何其他值,与 C 相比,其中 NULL 被定义为零。

其他类型

还有另外两种类型,用户数据和线程。这些是高级主题,不在此处介绍。

简单类型