Coleções
Coleções
Coleções é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 de 1. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 1 aulas no total.
Introdução
Olá,
Nesta lição, aprenderemos sobre os tipos de coleção no Swift, que constituem um dos tópicos mais importantes.
Então, vamos começar.
Há 3 tipos de coleção no Swift.
Matriz → Tipos de coleção sequenciais.
Conjunto → Tipos de coleção não ordenados e exclusivos.
Dicionário → Tipos de coleção não ordenados e organizados em pares de chave e valor.
Mutável — imutável
O fato de nossos tipos de coleção serem imutáveis ou mutáveis é determinado pela definição que fazemos.
Se o definirmos com uma instrução let, ele será imutável; se o definirmos com var, será mutável.
Se o valor que definimos não mudar posteriormente, usar let oferecerá uma vantagem de desempenho, permitindo que o compilador execute o código de forma mais otimizada.
Matriz
Matriz
Matriz é o tipo de coleção usado para manter dados em sequência. A partir da versão 3 do Swift, todos os elementos de uma matriz não precisam ser do mesmo tipo.
A sintaxe de uma definição simples de matriz é apresentada no exemplo abaixo.
// Let's create an empty array.
var someInts = [Int]()
print("someInts is of type [Int] with \(someInts.count) items.")
// Prints "someInts is of type [Int] with 0 items."Criar um vetor com valor padrão
Criar um vetor com valor padrão
Em alguns casos, podemos querer criar um vetor com um valor padrão e um tamanho específico. Para isso, precisamos passar dois argumentos ao construtor de vetores.
Esses argumentos especificam qual é o valor padrão e quantos elementos o vetor terá.
var threeDoubles = Array(repeating: 0.0, count: 3)
print(threeDoubles)
// threeDoubles is of type [Double], and equals [0.0, 0.0, 0.0]
var anotherThreeDoubles = Array(repeating: 2.5, count: 3)
// anotherThreeDoubles is of type [Double], and equals [2.5, 2.5, 2.5]
print(anotherThreeDoubles)
var sixDoubles = threeDoubles + anotherThreeDoubles
print(sixDoubles)
// sixDoubles is inferred as [Double], and equals [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]Criando uma matriz usando um literal de matriz
Criando uma matriz usando um literal de matriz
No exemplo anterior, aprendemos a criar uma matriz vazia. Entretanto, em alguns casos, podemos querer criar uma matriz usando um literal de matriz.
Vamos aprender seu uso com o exemplo.
/*
We have defined a variable named catList,
and with the [String] statement we specified
that its type is an Array containing String elements.
*/
var catList: [String] = ["Garfield", "Tom"]
print(catList)
/*
It will understand that the array is an Array containing
String statements, since we assign a value that
defines the variable. (Swift type inference)
*/
var shoppingList = ["Eggs", "Milk"]
print(shoppingList)Acessando um valor da matriz
Acessando o valor da matriz
Quando queremos acessar um elemento em um determinado índice de uma sequência, basta chamá-lo usando a sintaxe a seguir.
myArray [index]
Vejamos o exemplo.
// We have defined an array with 3 elements of type Int.
var numbers:[Int] = [1, 5, 21]
// Arrays start from Index 0. For example, in order to reach the value 5, which is the 2nd element, we need to access the 1st index.
var a = numbers[1]
print( "Value of numbers at index 1 is \(a)" )Adicionando novos elementos à matriz
Adicionando novos elementos à matriz
Podemos adicionar um novo item a uma matriz.
No exemplo abaixo, é definida uma matriz chamada catList. Em seguida, um novo item é adicionado a essa matriz com o método append.
// The Array named catList was defined with 1 initial element.
var catList = ["Tom"]
/*
We are adding a new item with a Garfield
value using the append method.
*/
catList.append("Garfield")
// Our array will now have 2 elements.
/*
With the + = operator, we can do the
work that the append method does.
*/
catList += ["Sylvester"]
Adicionando dados a um índice específico da matriz
Adicionando dados a um índice específico da matriz
O valor que adicionei com o método append no exemplo anterior será adicionado ao final da matriz. Entretanto, às vezes podemos querer adicioná-lo a um índice específico. Para isso, usaremos o método insert.
A sintaxe será semelhante a esta.
myArr.insert ("The data to add", at: index);
Vamos descobrir como fazer isso com um exemplo.
var catList = ["Tom"]
catList.insert("Garfield", at: 1)
print(catList)
Excluindo um elemento específico da matriz
Excluindo um elemento específico da matriz
O método remove é usado para excluir um elemento em um determinado índice de uma matriz.
var shoppingList = ["Apple", "Cherry", "Cheese"]
let shoppingListOne = shoppingList.remove(at: 0)
// the item that was at index 0 has just been removed
// the mapleSyrup constant is now equal to the removed "Maple Syrup" string
let shoppingListTwo = shoppingList.removeLast()
// the last item in the array has just been removed
print(shoppingListTwo)Iteração de um vetor
Podemos iterar um vetor que temos usando um laço de iteração.
Vamos analisar o exemplo.
var shoppingList = ["Banana", "Orange", "Milk"]
for item in shoppingList {
print(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas
for (index, value) in shoppingList.enumerated() {
print("Item \(index + 1): \(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
Conjuntos
Conjuntos
Usados para manter coleções do mesmo tipo juntas, sem ordenação.
Como podemos entender pelo nome, eles são conjuntos. E não pode haver dois elementos com o mesmo valor no conjunto.
Criando um conjunto vazio
Usamos o exemplo a seguir para criar um conjunto vazio.
var catSet = Set<Character>()Criando conjuntos usando um literal de vetor
Criando conjuntos usando um literal de vetor
Um literal de vetor pode ser usado para criar um conjunto. Observe que, embora o valor atribuído aqui pareça um vetor, o tipo da variável é um conjunto de cadeias de caracteres.
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]Aviso
Com o uso de um literal de vetor, não é possível criar um conjunto sem definir um tipo. Isso pode interferir no vetor. Portanto, precisamos definir o tipo.
Pelo menos, devemos usá-lo da seguinte forma.
var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]Métodos de conjuntos
Métodos de conjuntos
Vamos analisar o exemplo.
var favoriteGenres = ["Funk"]
print("I have \(favoriteGenres.count) favorite music genres.")
if favoriteGenres.isEmpty {
print("favoriteGenres is empty")
} else {
print("I have particular music preferences.")
}
if favoriteGenres.contains("Funk") {
print("Funk")
} Iterando o conjunto
Iterando o conjunto
O tipo de conjunto do Swift não tem ordenação. No entanto, o método sorted pode ser usado ao iterar sobre o valor do conjunto. Esse método transforma os elementos do conjunto em um vetor.
let favoriteGenres = ["Classical","Jazz", "Hip hop"]
for genre in favoriteGenres {
print("\(genre)")
}
// Classical
// Jazz
// Hip hopDicionário
Dicionário
São tipos de coleção que armazenam valores como pares de chave e valor e não possuem ordenação.
Cada valor é armazenado com uma chave exclusiva. Ela representa o ID desse valor no dicionário. Ele não contém uma sequência como os vetores. Podemos pensar nele como um dicionário do mundo real.
Assim, a identidade de cada valor é mais importante do que sua posição.
O tipo dicionário pode ser definido pela forma abreviada [Chave: Valor]. O uso da forma abreviada é mais comum.
var namesOfIntegers = [Int: String]()
// namesOfIntegers is an empty [Int: String] dictionary
namesOfIntegers[16] = "sixteen"
// namesOfIntegers now contains 1 key-value pair
namesOfIntegers = [:]
// namesOfIntegers is once again an empty dictionary of type [Int: String]Métodos de acesso a dicionários
Podemos descobrir quantos elementos um dicionário contém usando o método de contagem.
Além disso, podemos verificar se o dicionário está vazio usando o método isEmpty.
Vamos fazer alguns exemplos desses métodos.
var airports = ["LHR": "London", "IST": "Istanbul"]
print("The airports dictionary contains \(airports.count) items.")
// Prints "The airports dictionary contains 2 items."
if airports.isEmpty {
print("The airports dictionary is empty.")
} else {
print("The airports dictionary is not empty.")
}
// Prints "The airports dictionary is not empty."
airports["LHR"] = "London"
// the airports dictionary now contains 3 itemsSubscrito
O processo de obter um valor usando um subscrito é o seguinte. O resultado retornado é opcional.
var airports = ["DUB":"Dublin"]
if let airportName = airports["DUB"] {
print("The name of the airport is \(airportName).")
} else {
print("That airport is not in the airports dictionary.")
}
// Prints "The name of the airport is Dublin Airport."
//Deletion
airports["APL"] = nil
if let removedValue = airports.removeValue(forKey: "DUB") {
print("The removed airport's name is \(removedValue).")
} else {
print("The airports dictionary does not contain a value for DUB.")
}
// Prints "The removed airport's name is Dublin Airport."
Atualizando um dicionário
Além de usar o subscrito acima, há um método para atualizar o dicionário.
A característica desse método é que, depois que o processo de atualização ocorre, ele retorna o valor anterior à atualização.
var airports = ["DUB": "Dublin"]
if let oldValue = airports.updateValue("Dublin Airport", forKey: "DUB") {
print("The old value for DUB was \(oldValue).")
}
// Prints "The old value for DUB was Dublin."
Exemplo de conversão de dicionário para vetor
Veja abaixo um exemplo de conversão de dicionário para vetor.
let airports = ["IST":"Istanbul Airport", "DUB":"Dublin Airport"]
let airportCodes = [String](airports.keys)
print(airportCodes)
let airportNames = [String](airports.values)
print(airportNames)Parabéns
Parabéns 🎉
Nesta lição, aprendemos a usar coleções no Swift.
Até a próxima lição.

Perguntas Frequentes
A aula “Coleções” é grátis?
Sim — o texto completo de “Coleções” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 1 aulas no total.
O que vou aprender em “Coleções”?
Coleções Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Swift Academy?
Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 1.
Quanto tempo leva a aula “Coleções”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Swift Academy?
Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.