:=
 Asignación en línea-binario                     (Asignación)
------------------------------------------------------------------------------
 Sintaxis

     <idVar> := <exp>

 Tipo

     Todos

 Operandos

     <idVar> es cualquier identificador de variable válido de cualquier
     tipo de almacenamiento, incluidas las variables de campo. Si <idVar> no
     es visible o no existe, se crea una variable privada y se le asigna el
     resultado de <exp>.

     <exp> es la expresión cuyo resultado se asigna a <idVar>.

 Descripción

     El operador de asignación en línea (:=) asigna valores de cualquier
     tipo de datos a variables de cualquier clase de almacenamiento. El
     operador evalúa <exp>, asigna el valor resultante a <idVar>, y devuelve
     el valor resultante como valor de retorno de la operación. Este último
     comportamiento permite asignaciones múltiples como idVar1 := idVar2 :=
     valor. A diferencia del operador de asignación sencilla (=), el
     operador de asignación en línea (:=) puede utilizarse en cualquier
     parte donde se permita una expresión o constante, incluidas las
     declaraciones de variables. En una declaración de variable, la
     asignación inicializa una variable. Recuerde, no obstante, que no puede
     declarar una matriz e inicializar elementos en la misma sentencia del
     programa.

     Si la referencia a <idVar> es ambigua (es decir, no está declarada en
     el momento de la compilación y no se ha identificado explícitamente con
     un alias), <idVar> se considerará como una variable de memoria
     (MEMVAR). Si en tiempo de ejecución no existe una variable pública o
     privada con el nombre especificado, se crea una variable privada. Puede
     asignar variables de campo con el operador 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

      Estos ejemplos muestran varios tipos de asignación en línea:

        LOCAL nValor := 10
        //
        IF (dFecha := (DATE() - 1000)) = CTOD("20/12/79")
        //
        ? SQRT(nValor := (nValor ** 2))
        //
        cNoTrans := cNoClasificacion := (ClienteId + DTOC(FECHA()))

      Este último ejemplo realiza asignaciones múltiples utilizando
        el operador de asignación en línea, igual que haría con el mandato
        STORE. Cuando se utiliza el operador := de esta forma, las
        asignaciones se ejecutan de derecha a izquierda. Esta característica
        es especialmente importante cuando deba almacenar los mismos valores
        en campos diferentes, procedentes posiblemente de bases de datos
        distintas:

        FicheroCliente->ClienteId := TransFichero-> ;
           NoTrans := (ClienteId + DTOC(DATE())

 To download this example - click here.

See Also: ++ -- = (asignación) = (compuesta) STORE*