简单类型

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

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

数字

所有数字(偶数整数)都由 IEEE 754 浮点值表示。高达 2 ^ 54 的整数具有确切的表示形式。数值可以通过以下方式表示:

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

Citrix ADC 策略表达式有三种数值类型:

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

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

字符串

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

使用时会自动分配字符串。没有必要(甚至方法)为字符串明确分配缓冲区。当不再使用时,字符串也会被垃圾回收自动释放。没有必要(甚至方法)明确地释放字符串。这种自动分配和释放避免了像 C 这样的语言中的一些常见问题,例如内存泄漏和悬挂指针。

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

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

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

[= [这是一个多行字符串,使用长符号与 [和 ]] 和其中未转义。] =]

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

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

布尔值

提供通常的真假布尔值。请注意,布尔值与数值值不同,与 C 不同,其中假定零为假,任何非零值为 true。

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

其他类型

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

简单类型