Elm - Variáveis

Uma variável, por definição, é “um espaço nomeado na memória” que armazena valores. Em outras palavras, ele atua como um contêiner para valores em um programa. Uma variável ajuda os programas a armazenar e manipular valores.

As variáveis ​​no Elm estão associadas a um tipo de dados específico. O tipo de dados determina o tamanho e o layout da memória da variável, a faixa de valores que podem ser armazenados nessa memória e o conjunto de operações que podem ser realizadas na variável.

Regras de Nomenclatura Variável

Nesta seção, aprenderemos sobre as Regras de Nomenclatura de Variáveis.

  • Os nomes das variáveis ​​podem ser compostos por letras, dígitos e o caractere de sublinhado.
  • Os nomes das variáveis ​​não podem começar com um dígito. Deve começar com uma letra ou um sublinhado.
  • As letras maiúsculas e minúsculas são distintas porque o Elm diferencia maiúsculas de minúsculas.

Declaração de Variável em Elm

A sintaxe de tipo para declarar uma variável no Elm é fornecida abaixo -

Sintaxe 1

variable_name:data_type = value

A sintaxe “:” (conhecida como anotação de tipo) é usada para associar a variável a um tipo de dados.

Sintaxe 2

variable_name = value-- no type specified

O tipo de dados é opcional ao declarar uma variável no Elm. Nesse caso, o tipo de dados da variável é inferido do valor atribuído a ela.

Ilustração

Este exemplo usa o editor VSCode para escrever um programa elm e executá-lo usando o elm repl.

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

Adicione o seguinte conteúdo ao arquivo.

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

O programa define um módulo Variáveis. O nome de um módulo deve ser igual ao do arquivo de programa do elm. A sintaxe (..) é usada para expor todos os componentes do módulo.

O programa declara uma mensagem variável do tipo String .

Step 2 − Execute the program.

  • Digite o seguinte comando no terminal VSCode para abrir o elm REPL.
elm repl
  • Execute a seguinte instrução elm no 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
>

Ilustração

Use Elm REPL para tentar o exemplo a seguir.

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

Aqui, as variáveis ​​company e location são variáveis ​​String e rating é uma variável Float.

O elm REPL não suporta anotação de tipo para variáveis. O exemplo a seguir gera um erro se o tipo de dados for incluído ao declarar uma variável.

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 inserir uma quebra de linha enquanto usa o elm REPL, use a sintaxe \ como mostrado abaixo -

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