Olmo - Variables

Una variable, por definición, es "un espacio con nombre en la memoria" que almacena valores. En otras palabras, actúa como un contenedor de valores en un programa. Una variable ayuda a los programas a almacenar y manipular valores.

Las variables en Elm están asociadas con un tipo de datos específico. El tipo de datos determina el tamaño y el diseño de la memoria de la variable, el rango de valores que se pueden almacenar dentro de esa memoria y el conjunto de operaciones que se pueden realizar en la variable.

Reglas de denominación de variables

En esta sección, aprenderemos sobre las reglas de denominación de variables.

  • Los nombres de las variables pueden estar compuestos por letras, dígitos y el carácter de subrayado.
  • Los nombres de las variables no pueden comenzar con un dígito. Debe comenzar con una letra o un guión bajo.
  • Las letras mayúsculas y minúsculas son distintas porque Elm distingue entre mayúsculas y minúsculas.

Declaración de variable en Elm

La sintaxis de tipo para declarar una variable en Elm se da a continuación:

Sintaxis 1

variable_name:data_type = value

La sintaxis “:” (conocida como anotación de tipo) se utiliza para asociar la variable con un tipo de datos.

Sintaxis 2

variable_name = value-- no type specified

El tipo de datos es opcional al declarar una variable en Elm. En este caso, el tipo de datos de la variable se infiere del valor que se le asigna.

Ilustración

Este ejemplo usa el editor VSCode para escribir un programa elm y ejecutarlo usando elm repl.

Step 1 − Create a project folder - VariablesApp. Create a Variables.elm file in the project folder.

Agregue el siguiente contenido al archivo.

module Variables exposing (..) //Define a module and expose all contents in the module
message:String -- type annotation
message = "Variables can have types in Elm"

El programa define un módulo Variables. El nombre de un módulo debe ser el mismo que el del archivo de programa elm. La sintaxis (..) se utiliza para exponer todos los componentes del módulo.

El programa declara un mensaje variable del tipo String .

Step 2 − Execute the program.

  • Escriba el siguiente comando en la terminal VSCode para abrir elm REPL.
elm repl
  • Ejecute la siguiente declaración de elm en la terminal REPL.
> import Variables exposing (..) --imports all components from the Variables module
> message --Reads value in the message varaible and prints it to the REPL 
"Variables can have types in Elm":String
>

Ilustración

Utilice Elm REPL para probar el siguiente ejemplo.

C:\Users\dell\elm>elm repl
---- elm-repl 0.18.0 ---------------------------------------
--------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
-------------------------------------
------------------------------------------
> company = "TutorialsPoint"
"TutorialsPoint" : String
> location = "Hyderabad"
"Hyderabad" : String
> rating = 4.5
4.5 : Float

Aquí, las variables empresa y ubicación son variables de cadena y la calificación es una variable flotante.

Elm REPL no admite anotaciones de tipo para variables. El siguiente ejemplo arroja un error si se incluye el tipo de datos al declarar una variable.

C:\Users\dell\elm>elm repl
---- elm-repl 0.18.0 -----------------------------------------
------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
----------------------------------------
----------------------------------------
> message:String
-- SYNTAX PROBLEM -------------------------------------------- repl-temp-000.elm

A single colon is for type annotations. Maybe you want :: instead? Or maybe you
are defining a type annotation, but there is whitespace before it?

3| message:String
^

Maybe <http://elm-lang.org/docs/syntax> can help you figure it out.

Para insertar un salto de línea mientras usa elm REPL, use la sintaxis \ como se muestra a continuación:

C:\Users\dell\elm>elm repl
---- elm-repl 0.18.0 --------------------------------------
---------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
------------------------------------------
--------------------------------------
> company \ -- firstLine
| = "TutorialsPoint" -- secondLine
"TutorialsPoint" : String