📦 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.
| Tipo | Declaração | Visibilidade | Ciclo 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
localpor 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
localdentro de funções, ou a variável vazará para o programa todo!