📦 Variáveis

Variáveis locais vs globais: entenda o escopo e o ciclo de vida.

📦

Tipos de Escopo

Em Sol, existem dois tipos principais de variáveis: locais e globais. A diferença está em "quem pode ver" a variável.

TipoDeclaraçãoVisibilidadeCiclo de Vida
Local local x = 10 Apenas no bloco ou arquivo onde foi criada Morre quando o bloco/função termina
Global x = 10 (sem local) Todo o programa (todos os arquivos!) Dura até o programa fechar

Variáveis Locais (Recomendado)

Variáveis locais são mais rápidas e seguras. Use local sempre que possível!

Escopo de Bloco

Elas só existem dentro do bloco (se, para, função) onde foram criadas:

se verdadeiro então
    local segredo = "1234"
    exiba(segredo)  -- Funciona: "1234"
fim

exiba(segredo)      -- Erro/Nulo! 'segredo' não existe aqui fora

Escopo de Arquivo

Se você criar uma variável local fora de qualquer função, ela é visível em todo o arquivo, mas não em outros arquivos:

-- arquivo_a.sol
local apenas_aqui = 10
global_visivel = 20
-- arquivo_b.sol
importe("arquivo_a")

exiba(global_visivel)  -- 20 (Funciona!)
exiba(apenas_aqui)     -- nulo (Invisível!)

Variáveis Globais

Qualquer variável criada sem local é global. Ela é armazenada na tabela especial _G.

pontos = 100
exiba(_G["pontos"])  -- 100
exiba(_G.pontos)     -- 100
⚠️ Cuidado: Variáveis globais podem ser alteradas por qualquer arquivo do seu projeto. Isso pode causar bugs difíceis de achar. Prefira retornar valores de módulos em vez de usar globais.

Boas Práticas

  • ✅ Use local por padrão.
  • ✅ Use variáveis locais no topo do arquivo para compartilhar dados entre funções do mesmo arquivo.
  • ❌ Evite globais, exceto para configurações de todo o sistema.
  • ❌ Não esqueça o local dentro de funções, ou a variável vazará para o programa todo!
```