Erlang - Variables
En Erlang, todas las variables están vinculadas con la declaración '='. Todas las variables deben comenzar con mayúsculas. En otros lenguajes de programación, el signo '=' se usa para la asignación, pero no en el caso de Erlang. Como se indicó, las variables se definen con el uso de la declaración '='.
Una cosa clave a tener en cuenta en Erlang es que las variables son inmutables, lo que significa que para que el valor de la variable cambie, debe destruirse y recrearse nuevamente.
Las siguientes variables básicas en Erlang se explican en el último capítulo:
Numbers- Se utiliza para representar un número entero o un flotante. Un ejemplo es 10.
Boolean - Esto representa un valor booleano que puede ser verdadero o falso.
Bit String- Se utiliza una cadena de bits para almacenar un área de memoria sin escribir. Un ejemplo es << 40,50 >>.
Tuple- Una tupla es un tipo de datos compuestos con un número fijo de términos. Un ejemplo es {40,50}.
Map- Un mapa es un tipo de datos compuestos con un número variable de asociaciones clave-valor. Cada asociación clave-valor del mapa se denomina par de asociación. Un ejemplo es {tipo => persona, edad => 25}.
List- Una lista es un tipo de datos compuestos con un número variable de términos. Un ejemplo es [40,40].
Declaraciones de variables
La sintaxis general para definir una variable es la siguiente:
Sintaxis
var-name = var-value
Dónde,
var-name - Este es el nombre de la variable.
var-value - Este es el valor vinculado a la variable.
A continuación se muestra un ejemplo de declaración de variable:
Ejemplo
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
Result = X + Y,
io:fwrite("~w",[Result]).
En el ejemplo anterior, tenemos 2 variables, una es X, que está vinculada al valor 40 y la siguiente es Y, que está vinculada al valor de 50. Otra variable llamada Resultado está vinculada a la suma de X e Y.
La salida del programa anterior será:
Salida
90
Nombrar variables
Como se discutió, los nombres de las variables deben comenzar con mayúsculas. Tomemos un ejemplo de una variable declarada en minúsculas.
Ejemplo
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
result = X + Y,
io:fwrite("~w",[Result]).
Si intenta compilar el programa anterior, obtendrá el siguiente error de tiempo de compilación.
Salida
helloworld.erl:8: variable 'Result' is unbound
En segundo lugar, todas las variables solo se pueden asignar una vez. Tomemos un ejemplo de asignación de una variable más de una vez.
Ejemplo
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
X = 60,
io:fwrite("~w",[X]).
Si intenta compilar el programa anterior, recibirá el siguiente error de tiempo de compilación.
Salida
helloworld.erl:6: Warning: variable 'Y' is unused
helloworld.erl:7: Warning: no clause will ever match
helloworld.erl:7: Warning: the guard for this clause evaluates to 'false'
Impresión de variables
En esta sección discutiremos cómo utilizar las diversas funciones de las variables de impresión.
Uso de la función io: fwrite
Habría visto esto (io: fwrite) utilizado en todos los programas anteriores. losfwrite La función es parte del módulo 'io' o Erlang, que se puede usar para generar el valor de las variables en el programa.
El siguiente ejemplo muestra algunos parámetros más que se pueden usar con la instrucción fwrite.
Ejemplo
-module(helloworld).
-export([start/0]).
start() ->
X = 40.00,
Y = 50.00,
io:fwrite("~f~n",[X]),
io:fwrite("~e",[Y]).
La salida del programa anterior será:
Salida
40.000000
5.00000e+1
Deben tenerse en cuenta las siguientes indicaciones sobre el programa anterior.
~ - Este carácter simboliza que es necesario realizar algún formato para la salida.
~f- El argumento es un flotante que se escribe como [-] ddd.ddd, donde la precisión es el número de dígitos después del punto decimal. La precisión predeterminada es 6 y no puede ser menor que 1.
~n - Esto es para println a una nueva línea.
~e- El argumento es un flotante que se escribe como [-] d.ddde + -ddd, donde la precisión es el número de dígitos escritos. La precisión predeterminada es 6 y no puede ser menor que 2.