arrow_back Voltar ao curso

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

js
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

js
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:

js
cria usuario = { nome: "Ana", idade: 25, ativo: verdadeiro }
grita-ae(usuario.nome)   // Ana
grita-ae(usuario.idade)  // 25

Por 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:

js
resolve apresenta(pessoa) {
  grita-ae(pessoa.nome + " tem " + pessoa.idade + " anos")
}

apresenta(usuario)

Alterando objetos

js
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):

js
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.

Comentários