--
 Decremento-unario                               (Matemático)
------------------------------------------------------------------------------
 Sintaxis

     --<idVar>        (predecremento)
     <idVar>--        (postdecremento)

 Tipo

     Fecha, numérico

 Operandos

     <idVar> es cualquier identificador válido de CA-Clipper, incluidas
     las variables de campo. Si <idVar> es un campo, debe ir precedido con
     un alias o haber sido declarado con una sentencia FIELD.

     Además, debe inicializar <idVar> con un valor antes de realizar la
     operación de decremento, valor que debe ser de tipo numérico o de
     fecha.

 Descripción

     El operador decremento (--) disminuye en 1 el valor de su operando.
     Este operador resta 1 al valor de <idVar> y asigna el nuevo valor a
     <idVar>.

     El operador -- puede aparecer antes o después de <IdVar>. La
     especificación del operador antes de <IdVar> disminuye y asigna el
     valor antes de utilizarlo. Esta notación se denomina notación prefija,
     y es la forma utilizada con más frecuencia. Si el operador se
     especifica después de <IdVar>, el valor disminuye y se asigna después
     de ser utilizado. Es la notación sufija. En otras palabras, la notación
     sufija retrasa la parte de la operación correspondiente a la asignación
     hasta que no se evalúe el resto de la expresión, y la notación prefija
     da prioridad a la asignación sobre el resto de operaciones de la
     expresión.

     Si la referencia a <idVar> es ambigua (es decir, no se declara en el
     momento de la compilación y no se ha identificado explícitamente con un
     alias), se considerará que <idVar> es una variable de memoria (MEMVAR).
     Puede asignar variables de campo declarando el nombre de la variable
     de campo en una sentencia FIELD o haciendo referencia al nombre de
     campo precedido por FIELD->alias o el nombre del área de trabajo.

 Ejemplos

      En este ejemplo del operador postdecremento la asignación
        tiene lugar antes de que se disminuya el valor original, por lo que
        cuando se consultan, ambos valores no son iguales:

        nValor := 1
        nValorNuevo := nValor--
        ? nValorNuevo                // Resultado:   1
        ? nValor                     // Resultado:   0

      En este ejemplo, el operador predecremento disminuye en uno el
        primer operando de la multiplicación, y define así su valor en 9. A
        continuación, se asigna este nuevo valor a la variable nValor antes
        de que se evalúe la expresión. Por tanto, es el nuevo valor el que
        se utiliza para la multiplicación y el resultado de 9 * 9 es 81:

        nValor := 10
        ? --nValor * nValor          // Resultado:  81
        ? nValor                     // Resultado:   9

 To download this example - click here.

See Also: ++ - := = (compuesta)