📘
Aprenda Elixir utilizando testes
  • Introdução
  • Sobre o autor
  • O valor desse livro
  • Primeiros passos em Elixir
    • Linguagem
    • Instalação
    • Ferramenta Mix
    • Meu "Hello, world"
    • IEx
  • Básico
    • Módulos
    • Funções
      • Funções nomeadas
      • Funções anônimas
      • Funções nomeadas convertidas para anônima
    • Tipos
      • String
      • Integer
      • Float
      • Atoms
    • Pattern Matching
    • Coleções
      • Tuplas
      • Mapas
      • Estruturas
      • Listas
    • Estruturas de repetição
      • Recursão
    • Controle de fluxo
      • Pipes
      • With
      • Condicionais
        • if
        • cond
        • case
      • Guards
    • Manipulação de dados
      • Enum
      • Stream
    • Compreensão (for)
  • Conceitos
    • Imutabilidade
    • Aridade
    • Convenções
    • Enumeráveis
Powered by GitBook
On this page

Was this helpful?

  1. Básico
  2. Tipos

Integer

Em Elixir, integer é um tipo de dado que representa um número inteiro, ou seja, um número sem casas decimais. Em termos de programação, é um tipo de dado que pode ser usado para realizar operações matemáticas que não envolvem números fracionários.

Vamos criar um teste para entender melhor isso:

test/integer_test.exs
defmodule IntegerTest do
  use ExUnit.Case

  test "defining an integer" do
    my_integer = 1652468751356775

    assert is_integer(my_integer) == true
  end
end
mix test test/integer_test.exs
.
Finished in 0.01 seconds (0.00s async, 0.01s sync)
1 test, 0 failures

Podemos também, realizar operações matemáticas:

test/integer_test.exs
defmodule IntegerTest do
  use ExUnit.Case

  # ...
  
  test "math" do
    assert 1 - 1 == 0
    assert 1 + 3 == 4
    assert 1 * 5 == 5
  end
end

Dois valores inteiros quando somados, diminuidos ou multiplicados, tem como resposta um inteiro. Mas uma vez que dividimos esse valor e o valor venha com casas decimais, como por exemplo 5 / 2 = 2.5 temos um tipo de retorno de dado diferente.

test/integer_test.exs
defmodule IntegerTest do
  use ExUnit.Case

  # ...
  
  test "division" do
    x = 5
    y = 2
    
    assert is_integer(x) == true
    assert is_integer(y) == true
    
    result = x / y
    
    assert is_float(result) == true
  end
end

O dada resultante da operação veio com casas decimais, sendo agora do tipo float.

Conclusão

O tipo integer é uma representação flexível de inteiros, que pode ser usada para armazenar inteiros de qualquer tamanho e sinal. Como é implementado usando a biblioteca erlang, os inteiros são de tamanho variável, o que significa que o tamanho do inteiro é determinado automaticamente pelo valor que ele contém.

PreviousStringNextFloat

Last updated 2 years ago

Was this helpful?