D 过载二元关系运算符,并允许使用这些运算符进行字符串比较和整数比较。只要两个操作数均属于 string 类型,或一个操作数属于 string 类型而另一个操作数可以提升为 string 类型,则关系运算符就可以进行字符串比较,如字符串赋值中所述。所有关系运算符均可用于比较字符串:
表 6–1 用于字符串的 D 关系运算符
< |
左边的操作数小于右边的操作数 |
<= |
左边的操作数小于或等于右边的操作数 |
> |
左边的操作数大于右边的操作数 |
>= |
左边的操作数大于或等于右边的操作数 |
== |
左边的操作数等于右边的操作数 |
!= |
左边的操作数不等于右边的操作数 |
与整数一样,每个运算符计算为 int 类型的值,如果条件为 true,则该值等于 1,如果条件为 false,则等于 0。
关系运算符逐字节比较两个输入字符串,这与 C 库例程 strcmp(3C) 类似。每个字节使用 ASCII 字符集中的相应整数值进行比较,如 ascii(5) 中所示,直到读取空字节或达到最大字符串长度为止。以下是一些 D 字符串比较及其结果的示例:
"coffee" < "espresso" |
... 返回 1 (true) |
"coffee" == "coffee" |
... 返回 1 (true) |
"coffee" >= "mocha" |
... 返回 0 (false) |