Guia de rastreamento dinâmico Solaris

Comparação de seqüências

D sobrecarrega os operadores relacionais binários e permite que eles sejam usados para comparações de seqüências, assim como para comparações de inteiros. Os operadores relacionais fazem a comparação de seqüências sempre que ambos os operandos forem do tipo string, ou quando um operando for do tipo string e o outro operando puder ser promovido para o tipo string, conforme descrito em Atribuição de seqüências. Todos os operadores relacionais podem ser usados para comparar seqüências:

Tabela 6–1 Operadores relacionais de D para seqüências

<

o operando esquerdo é menor que o operando direito 

<=

o operando esquerdo é menor ou igual ao operando direito 

>

o operando esquerdo é maior que o operador direito 

>=

o operando esquerdo é maior ou igual ao operando direito 

==

o operando esquerdo é igual ao operando direito 

!=

o operando esquerdo não é igual ao operando direito 

Como nos inteiros, cada operador é avaliado com um valor de tipo int que é igual a um, se a condição for verdadeira, ou zero se for falsa.

Os operadores relacionais comparam as duas seqüências de entrada byte por byte, semelhante à rotina de biblioteca de C strcmp(3C). Cada byte é comparado através do seu valor de inteiro correspondente no conjunto de caracteres ASCII, conforme mostrado em ascii(5), até que um byte nulo seja lido ou o tamanho máximo de seqüência seja alcançado. Alguns exemplos de comparações de seqüências de D e seus resultados:

"café" < "expresso"

... retorna 1 (verdadeiro) 

"café" == "café"

... retorna 1 (verdadeiro) 

"café" >= "mocha"

... retorna 0 (falso)