Dictionary

Dictionary Swift

Um Dictionary (Ou dicionário) permite armazenar conjuntos de keys (Chaves) do mesmo tipo e values (Valores) do mesmo tipo em uma coleção sem ordenação. Cada valor está associado a uma chave única, que serve como um identificador para aquele valor no dicionário.

Diferente de um array, os itens de um dicionário não possuem uma ordem específica, portanto, ao utilizar um dicionário você precisa procuras os valores baseado nos seus identificadores (Keys), assim como em um dicionário da vida real onde você busca uma palavra para encontrar a sua definição.

Criando um Dicionário

Para criar um dicionário com um dictionary literal, definindo um ou mais valores iniciais, utiliza-se o seguinte esquema:

Assim como arrays, você não precisa descrever o tipo do dicionário se você o está inicializando com um dictionary literal, onde as chaves e os valores possuem tipos consistentes. Ou seja, poderíamos inicializar o nosso dicionário de país da seguinte forma:

Criando um dicionário sem nenhum elemento, informando o tipo da chave e do valor:

Acessando Elementos

Para acessar um elemento de um dicionário, é preciso utilizar a sintaxe de subscript, onde a chave do valor que se deseja acessar deve ser utilizado como index (Dentro dos colchetes).

Vale ressaltar que como sempre há a possibilidade da chave não existir no dicionário, ao acessar um determinado valor, nós sempre receberemos de volta um optional:

Modificando Elementos

Para modificar um valor de um elemento em um dicionário, utiliza-se a mesma sintaxe para acessar um elemento, com a única diferença sendo a atribuição de valor após o acesso:

Também é possível modificar elementos utilizando o método updateValue(_:forKey:) para atualizar o valor de uma chave específica. Este método retorna o valor que existia antes de modificá-lo, possibilitando verificar se houve ou não uma mudança:

Adicionando Elementos

Para adicionar um novo elemento a um dicionário, deve utilizada a mesma sintaxe de acessar e modificar elementos, com a única diferença sendo que a chave que vamos utilizar não existe no dicionário, então uma nova entrada será criada utilizando esta nova chave:

Removendo Elementos

É possível remover um elemento de um dicionário ao definir o seu valor como nil:

Também é possível remover valores utilizando o método removeValue(forKey:), que removerá o conjunto chave-valor do dicionário e retornará o valor removido caso ele exista, ou retornará nil caso o valor não exista:

Existe também uma forma de remover todos os itens de um dicionário, onde basta você atribuir o valor [:] para o dicionário:

Iterando em um Dicionário

Para iterar entre os elementos de um dicionário você pode utilizar o for-in loop, assim como em arrays e sets. A diferença é que você precisa decompor os conjuntos de chave-valor em uma tupla:

Também é possível iterar diretamente apenas as chaves ou os valores de um dicionário:

Anterior
Anterior

Alert

Próximo
Próximo

Set