简单类型

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

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

数字

所有数字(甚至整数)都由IEEE 754浮点值表示。2^54以内的整数有精确表示。数值可以用:

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

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

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

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

字符串

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

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

字符串字面值是用双引号或单引号括起来的字符串。这两种类型的引号之间没有区别:“字符串字面量”与“字符串字面量”相同。通常的反斜杠转义是可用的:\s (bell), \b (backspace), \f (form feed), \n(换行/换行),\t(水平制表符),\\(反斜杠),\ "(双引号)和\ '(单引号)。十进制字节值可以由反斜杠和一到三位数字(\d, \dd, \ddd)输入。十六进制字节值可以由反斜杠、x和两个十六进制数字(\xhh)输入。

一种称为长括号表示法的特殊语法可用于长多行字符串字面值。这种符号将字符串包含在双方括号中,括号之间有零个或多个等号-其思想是提出一个不在字符串中的括号和等号的组合。字符串中不支持转义序列。一些例子:

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

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

长括号符号可用于多行注释。例子:

-[[这是一个多行注释。- - - - - -]]

布尔

提供了常见的true和false布尔值。请注意,布尔值与数值不同,而C语言则假定零为假,任何非零值为真。

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

其他类型

还有另外两种类型,userdata和thread。这些都是高级主题,不在这里讨论。

简单类型