Tipos de dados

A linguagem Tenda oferece diversos tipos de dados que você pode usar para armazenar e manipular informações.

Número

Números em Tenda são representados como ponto flutuante de 64 bits (precisão dupla), permitindo trabalhar com inteiros e decimais.

Você pode utilizar os operadores matemáticos usuais: adição (+), subtração (-), multiplicação (*) e divisão (/).

seja a = 10
seja b = 5
seja soma = a + b

exiba("A soma de " + a + " e " + b + " é: " + soma)

Além disso, a linguagem suporta diferentes formatos numéricos:​

  • Decimal: 42, 3.14, 2.7e-3
  • Binário: 0b1010_0101
  • Octal: 0o755
  • Hexadecimal: 0xDead_Beef​

Você pode usar sublinhados (_) para melhorar a legibilidade dos números.

seja binário = 0b1101_0010
seja octal = 0o755
seja hexadecimal = 0xDead_Beef
seja decimal = 1_000_000
seja flutuante = 3.14e-10

exiba("Binário: " + binário)
exiba("Octal: " + octal)
exiba("Hexadecimal: " + hexadecimal)
exiba("Decimal: " + decimal)
exiba("Flutuante: " + flutuante)

Texto

Textos são sequências de caracteres delimitadas por aspas duplas ("). Você pode concatenar textos com o operador + e usar sequências de escape como \n (nova linha) e \t (tabulação).

seja nome = "Tenda"
seja saudação = "Olá, " + nome + "!"

exiba(saudação)

Lista

Listas armazenam coleções ordenadas de elementos e são criadas com colchetes ([]). Os elementos são separados por vírgulas, e o acesso é feito por índices numéricos a partir de 0.

seja lista = [1, 2, 3, 4, 5]
seja primeiro_elemento = lista[0]

exiba("O primeiro elemento da lista é: " + primeiro_elemento)

Dicionário

Dicionários são coleções de pares chave‑valor, criados com chaves ({}). As chaves geralmente são textos.

Você pode acessar os valores por colchetes ou pelo operador de ponto (.):

seja dicionário = { "nome": "Tenda", "versão": 1.0 }

seja nome = dicionário["nome"]
seja versão = dicionário.versão

exiba("Nome: " + nome + ", Versão: " + versão)

É possível verificar se uma chave existe usando o operador tem:

seja dicionário = { "nome": "Tenda", "versão": 1.0 }
seja chave = "nome"

se dicionário tem chave então
  exiba("A chave " + chave + " existe no dicionário.")
senão
  exiba("A chave " + chave + " não existe no dicionário.")
fim

Lógico

Valores lógicos representam condições verdadeiras (verdadeiro) ou falsas (falso). Use os operadores e, ou e não para construir expressões lógicas.

seja a = verdadeiro
seja b = falso

seja resultado = a e b

exiba("O resultado da operação lógica é: " + resultado)

Função

Funções são blocos reutilizáveis de código. Elas podem ser nomeadas ou anônimas, e recebem parâmetros via parênteses.

seja soma(a, b) = a + b
seja resultado = soma(10, 5)

exiba("A soma é: " + resultado)

Funções anônimas podem ser definidas usando a palavra-chave função:

seja soma = função(a, b) -> a + b
seja resultado = soma(10, 5)

exiba("A soma é: " + resultado)

Intervalo

Intervalos representam sequências numéricas com início e fim. Você pode usá-los em laços de repetição com o operador até.

seja intervalo = 1 até 10

para cada i em intervalo faça
  exiba(i)
fim

Data

Tenda oferece suporte a datas com fusos horários. Para obter a data e hora atual, use Data.agora().

seja data_atual = Data.agora()

exiba("A data atual é: " + data_atual)

Nada

O valor Nada representa ausência de valor. É útil para inicializações ou retornos vazios.

seja variável = Nada

exiba("O valor da variável é: " + variável)