Expresiones de Asignación–AWK


Una asignación es una expresión que almacena un valor nuevo en una variable. Por ejemplo, asignemos el valor 1 a la variable z.

z = 1

Después de que esta expresión se haya ejecutado, la variable z tiene el valor 1. Cualquier valor anterior que tuviese z antes de la asignación se pierde.
Las asignaciones pueden almacenar valores tipo cadena también. Por ejemplo, esto almacenaría el valor “esta comida es buena ” en la variable mensaje.

cosa = "comida" predicado = "buena"
mensaje = "esta " cosa " es " predicado

(Este ejemplo además ilustra una concatenación de cadenas).

Al signo ‘=’ se le llama operador asignación. Es el operador de asignación más simple porque el valor del operando que se encuenta a la derecha permanece invariable.

La mayoría de los operadores (adición, concatenación, etc.) no tienen ningún efecto para computar un valor. Si ignoras el valor, podrías también no usar el operador. Un operador de asignación es diferente, produce un valor, pero incluso si ignoras el valor, la asignación todavía se realiza. Se llama a esto efecto lateral.

El operando a la izquierda de la asignación no tiene porqué ser una variable; también podría ser un campo o el elemento de un array .Estos son llamados valoresi, lo cual significa que pueden aparecer en la parte izquierda de un operador de asignación. El operando de la derecha podría ser una expresión; produce el número valor que la asignación almacena en la variable, campo o elemento de array especificado.

Es importante señalar que las variables no tienen tipos de datos permanentes. El tipo de una variable es simplemente el tipo del valor que almacena la variable en ese momento. En el siguiente fragmento de programa, la variable foo tiene un valor numérico primero y un valor cadena después:

foo = 1 print foo foo = "bar" print foo

Cuando la segunda asignación le da a la variable foo un valor cadena, el hecho de que esta variable almacenase previamente un valor numérico es olvidado.
La asignación es una expresión, de forma que tiene un valor: el mismo valor que es asignado. Por lo que, z = 1 como expresión tiene el valor 1. Una consecuencia de esto es que puedes escribir asignaciones múltiples juntas:

x = y = z = 0

almacena el valor 0 en las tres variables. Hace esto porque el valor de z = 0, es cual es 0, se almacena en y, y el valor de y = z = 0, que es 0, se almacena en x.

Puedes usar una asignación en cualquier lugar en el que se pueda llamar a una expresión. Por ejemplo, es válido escribir x != (y = 1) para darle a y el valor 1 y posteriormente chequear si x es igual a 1. Pero este estilo tiende a crear programas difíciles de leer.

Además de ‘=’, existen otras diversos operadores de asignación que realizan una operación aritmética con el valor antiguo de la variable. Por ejemplo, el operador ‘+=’ calcula un nuevo valor para la variable añadiendo el valor de la derecha al valor antiguo de la variable. Por lo que, la siguiente asignación añade 5 a la variable de ‘foo’:

foo += 5

Esto es precisamente equivalente a:

foo = foo + 5

Usa el que haga que tu programa sea más claro.
Aquí tienes una tabla de operadores de asignación aritméticos. En todos los casos, el operando de la derecha es una expresión cuyo valor se convierte a número.

valori += incremento
Añade incremento al valor de valori para obtener el nuevo valor a asignar a valori.
valori -= decremento
Substrae decremento del valor de valori.
valori *= coeficiente
Multiplica el valor de valori por coeficiente.
valori /= coeficiente
Divide el valor de valori entre coeficiente.
valori %= módulo
Le asigna a valori el resto de la división entre modulo.
valori ^= potencia
valori **= potencia
Eleva a valori a la potencia de potencia.
























Publicar un comentario

0 Comentarios