Llamadas a Funciones - AWK

Una función es un nombre para un cálculo particular. Debido a que tiene un nombre, puedes llamarla por dicho nombre en cualquier punto de un programa. Por ejemplo, la función sqrt calcula la raíz cuadrada de un número.

Un conjunto fijo de funciones son implícitas (built-in), lo que significa que están disponibles en cualquier programa de awk. La función sqrt es una de estas, para una lista de funciones implícitas y sus descripciones. Además de éstas funciones, puedes definir tus propias funciones en el programa para usar en cualquier punto dentro del mismo programa.

La forma de utilizar una función es con una expresión de llamada a función, la cuál consiste en el nombre de la función seguido de una lista de argumentos entre paréntesis. Los argumentos son expresiones las cuales le proporcionan los valores a la función para que ésta realice sus cálculos u operaciones. Cuando existen más de un argumento, éstos estarán separados por comas. Si la función no necesita argumentos, escribe simplemente ‘()’ detrás del nombre de la función. Aquí tienes algunos ejemplos:

sqrt(x**2 + y**2) # One argument atan2(y, x) # Two arguments
rand() # No arguments

¡No pongas ningún espacio en blanco entre el nombre de la función y el paréntesis de apertura!. Una función definida por el usuario es similar al nombre de una variable, y un espacio produciría que la expresión pareciese la concatenación de un variable con una expresión encerrada entre paréntesis (argumentos de la función). Por lo que sería bueno acostumbrarse a no dejar espacios en blanco entre los nombres de funciones (definidas por el usuario o implícitas) y los paréntesis con los argumentos.

Cada función espera un número concreto de argumentos. Por ejemplo, la función sqrt debe ser llamada con un único argumento, el número del que se va a obtener la raíz cuadrada.

sqrt(argument)

Algunas de las funciones implícitas te permiten omitir el argumento final. Si haces esto, estas funciones realizan algo razonable por defecto, para detalles sobre esto. Si se omiten argumentos en llamadas a funciones definidas por el usuario, entonces esos argumentos son tratados como variables locales, inicializadas a la cadena nula.

Al igual que otras muchas expresiones, la llamada a función tiene un valor, el cual es calculado por la función basándose en los argumentos que le pasas. En este ejemplo, el valor de sqrt(argumento) es la raíz cuadrada del argumento. Una función también puede tener efectos laterales, tales como asignar el valor de ciertas variables o hacer Entrada/Salida. Aquí está un comando para leer números, un número por línea, e imprime la raíz cuadrada de cada uno:

awk '{ print "La raíz cuadrada de ", $1, " es ", sqrt($1) }'



















Publicar un comentario

0 Comentarios