Arrays e Objetos na Prática
Fundamentos do XanaScript • Aula 6 de 20
Quase todo programa lida com coleções: listas de itens, registros com campos. Em XanaScript, arrays e objetos cobrem isso.
Arrays (listas) com sus
cria frutas = ["maçã", "banana", "uva"]
grita-ae(frutas[0]) // maçã (índices começam em 0)
grita-ae(tamanho(frutas)) // 3
frutas[1] = "morango"
grita-ae(frutas)Por que o índice começa em 0?
Computadores contam offsets (distância do início), não posições. O primeiro elemento está a 0 de distância do começo. É convenção herdada do C que todas as linguagens mantêm — por isso frutas[0] é o primeiro item.
Percorrendo com repete-na-moral
repete-na-moral (cria i = 0; i < tamanho(frutas); i++) {
grita-ae(frutas[i])
}Objetos (registros) com bagulho
Objetos agrupam dados relacionados sob um nome:
cria usuario = { nome: "Ana", idade: 25, ativo: verdadeiro }
grita-ae(usuario.nome) // Ana
grita-ae(usuario.idade) // 25Por que objetos?
Sem objetos, você guardaria cada campo em uma variável solta (nome, idade, ativo) — que se multiplica sem controle. Objetos agrupam o que pertence junto e permitem passar o registro inteiro pra uma função:
resolve apresenta(pessoa) {
grita-ae(pessoa.nome + " tem " + pessoa.idade + " anos")
}
apresenta(usuario)Alterando objetos
usuario.idade = 26
usuario.cidade = "São Paulo" // adiciona campo novo
grita-ae(usuario)Combinando arrays e objetos
O padrão mais comum em programação real: um array de objetos (uma lista de registros):
cria usuarios = [
{ nome: "Ana", idade: 25 },
{ nome: "Bob", idade: 30 },
{ nome: "Cris", idade: 22 }
]
repete-na-moral (cria i = 0; i < tamanho(usuarios); i++) {
grita-ae(usuarios[i].nome + " - " + usuarios[i].idade + " anos")
}É assim que bancos de dados, APIs e arquivos JSON representam dados: uma lista de registros, cada um com os mesmos campos. Entender esse padrão destrava tudo o que vem depois — incluindo o ORM.