Desestruturação de objetos
SkyL permite que você desestruture objetos em variáveis individuais de forma direta e elegante. Isso significa que você pode extrair os campos de um tipo customizado para variáveis locais com facilidade.
Vamos começar com um exemplo básico. Suponha que temos um tipo definido assim:
type Person {
name: str,
age: int
}
Agora vamos instanciar um Person
e desestruturar seus campos:
def main() -> void {
let p = Person("Skyer", 20);
let { name, age } = p;
println(name); // Saída: Skyer
println(age); // Saída: 20
}
Você também pode extrair apenas alguns dos campos, se quiser:
def main() -> void {
let p = Person("Skyer", 20);
let { name } = p;
println(name); // Saída: Skyer
}
A ordem dos campos não importa. O exemplo abaixo também funciona:
def main() -> void {
let p = Person("Skyer", 20);
let { age, name } = p;
println(name); // Saída: Skyer
println(age); // Saída: 20
}
A desestruturação também pode ser usada em combinação com outras expressões. Por exemplo, você pode extrair campos dentro de uma função:
def imprimir_nome(p: Person) -> void {
let { name } = p;
println("Nome:");
println(name);
}
def main() -> void {
let p = Person("Skyer", 20);
imprimir_nome(p);
}
Essa funcionalidade facilita muito a leitura do código e evita chamadas repetidas como p.name
ou p.age
, deixando o código mais limpo e direto.
Observação
- A desestruturação funciona apenas com tipos definidos pelo usuário (tipos
type
). - O nome das variáveis precisa corresponder exatamente aos nomes dos campos do tipo.
- Não é necessário desestruturar todos os campos — você pode extrair apenas os que quiser.
Essa é uma das formas mais simples e poderosas de manipular dados em SkyL!