English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Dicionário (Dictionary) Swift

Neste tutorial, você aprenderá o que é um dicionário, como criar um dicionário e algumas operações comuns no dicionário.

No artigo anteriorArray SwiftNo artigo, aprendemos como declarar variáveis/Armazena múltiplos valores em constantes. Neste artigo, discutiremos como armazenar dados/Os valores são armazenados como pares de chave valor.

O que é um dicionário?

Um dicionário é apenas um contêiner que pode armazenar múltiplos dados como pares de chave valor de forma não ordenada.

Cada valor está associado a uma chave única e armazena dados em uma lista não ordenada comoConjuntoIsso significa que você obtém a ordem dos elementos diferente da ordem dos itens definidos no dicionário.

Quando precisar buscar um valor com um identificador específico em um conjunto, use um dicionário em vez de um array. Suponha que você queira procurar a capital deste país. Neste caso, você criará um dicionário com pares de chave valor de país e cidade capital. Agora, você pode obter o valor: cidade capital pesquisando a chave: país no conjunto.

Em termos simples, você combina chave e valor. No exemplo acima, combinamos um país com sua capital.

Como declarar um dicionário em Swift?

Você pode criar um dicionário vazio especificando key: value tipo de dados dentro dos colchetes [].

Exemplo1:Declarar um dicionário vazio

let emptyDic:[Int:String] = [:]
print(emptyDic)

Quando o programa é executado, a saída é:

[:]
ou

Você também pode definir um dicionário vazio da seguinte forma:

let emptyDic:Dictionary<Int, String> = [:]
print(emptyDic)

No programa acima, declaramos uma constante dictionary do tipo dictionary chamada emptyDic com keys do tipo Int e values do tipo String, inicializada com 0.

ou

Como o Swift é uma linguagem de inferência de tipo, você também pode criar um dicionário sem especificar o tipo de dados, mas deve usar alguns valores para inicialização, para que o compilador possa inferir:

Exemplo2:Declarar um dicionário com valores específicos

let someDic = ["a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9]
print(someDic)

Quando o programa é executado, a saída é:

["b": 2, "a": 1, "i": 9, "c": 3, "e": 5, "f": 6, "g": 7, "d": 4, "h": 8]

No programa acima, declaramos um dicionário, mas não definimos explicitamente o tipo, usando alguns elementos padrão para inicialização.

Os elementos estão localizados em pares key:value, onde o tipo de key é String e o tipo de value é Int. Como o dicionário é uma lista não ordenada, print(someDic) imprime os valores em uma ordem diferente da definida.

Exemplo3:Criar dicionário a partir de dois arrays

Também podemos usar arrays para criar dicionários.

let customKeys = ["Facebook", "Google", "Amazon"]
let customValues = ["Mark", "Larry", "Jeff"]
let newDictionary = Dictionary(uniqueKeysWithValues: zip(customKeys,customValues))
print(newDictionary)

Quando o programa é executado, a saída é:

["Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark"]

No programa acima, zip(customKeys,customValues) cria uma nova sequência de tuplas, onde cada elemento representa valores de customKeys e customValues.

Agora, podemos passar essa sequência para o Dictionary(Unique eKeysWithValues:) inicializador e criar um novo Dictionary. Portanto, print(NewDictionary) gera um novo Dictionary, contendo elementos de dois arrays.

Como acessar elementos de um dicionário no Swift?

Como array, você pode usar a sintaxe de subscrito para acessar elementos do dicionário. Você precisa incluir o nome do dicionário seguido de colchetes e a chave do valor que você deseja acessar.

Exemplo4Acessar elementos do dicionário

let someDic = ["a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9]
print(someDic["a"])
print(someDic["h"])

Quando o programa é executado, a saída é:

Optional(1)
Optional(8)

Você também pode usar for-Acessar elementos do dicionário em loop.

Exemplo5Usar for-Acessar elementos do dicionário em loop

let someDic = ["a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9]
for (key,value) in someDic {
    print("key:\(key) value:\(value)")
}

Quando o programa é executado, a saída é:

key:b value:2
key:a value:1
key:i value:9
key:c value:3
key:e value:5
key:f value:6
key:g value:7

Como modificar elementos do dicionário no Swift?

Você pode usar a sintaxe de subscrito para adicionar elementos ao dicionário. Você precisa incluir Nova chave Como índice de subscrito, atribua um novo valor ao tipo Dictionary.

Exemplo6Definir elementos no dicionário

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
someDictionary["Japan"] = "Tokyo"
print(someDictionary)

Quando o programa é executado, a saída é:

["Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu"]

No exemplo acima, usamos a sintaxe de subscrito para criar um novo par chave-valor "Japan": "Tokyo" no dicionário.

Você também pode usar a sintaxe de subscrito para alterar o valor associado a uma chave específica:

Exemplo7Alterar elementos do dicionário

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
someDictionary["Nepal"] = "KATHMANDU"
print(someDictionary)

Quando o programa é executado, a saída é:

["China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU"]

Funções e atributos integrados ao dicionário

1.isEmpty atributo - Verificar se o dicionário está vazio

Este atributo determina se o dicionário está vazio. Se o dicionário não contiver nenhum valor, ele retorna true, caso contrário, retorna false.

Exemplo8Como isEmpty funciona?

let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
print(someDictionary.isEmpty)

Quando o programa é executado, a saída é:

falso

2.primeiro atributo - Retorna o primeiro elemento do dicionário

Esta propriedade é usada para acessar o primeiro elemento do dicionário.

Exemplo9Como funciona o primeiro?

let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
print(someDictionary.first)

Quando o programa é executado, a saída é:

Optional((key: "China", value: "Beijing"))

3.count - Retorna o número total de elementos do dicionário

Esta propriedade retorna o número total de elementos (pares de chave-valor) no dicionário.

Exemplo10Como funciona a contagem?

let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
print(someDictionary.count)

Quando o programa é executado, a saída é:

3

4.keys propriedade - Retorna todas as chaves do dicionário

Esta propriedade retorna todas as chaves do dicionário.

Exemplo11Como funciona keys?

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let dictKeys = Array(someDictionary.keys)
print(dictKeys)

Quando o programa é executado, a saída é:

["China", "India", "Nepal"]

Da mesma forma, você pode usar  values A propriedade para obter todos os valores do dicionário.

5. removeValue

Esta função é usada para remover e retornar o valor especificado pela chave do dicionário. Esses pares de chave-valor serão removidos do dicionário.

Exemplo12Como funciona removeValue()?

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let val = someDictionary.removeValue(forKey: "Nepal")
print(val)
print(someDictionary)

Quando o programa é executado, a saída é:

Optional("Kathmandu")
["India": "NewDelhi", "China": "Beijing"]

Da mesma forma, você também pode usar removeAll A função limpa o dicionário.

Anotações

1.Ao usar a sintaxe de subíndice para acessar elementos em um dicionário no Swift, você deve assegurar-se de que a chave esteja no índice, senão você obteránilO valor. Vamos ver um exemplo:

Exemplo13A chave deve existir

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let val = someDictionary["Japan"]
print(val)

Quando o programa é executado, a saída é:

nil

No programa acima, não há chave Japan . Portanto, ao tentar acessar a chave "Japan "nepal" você obterá um valor nil.

2.Da mesma forma, as chaves e valores são sensíveis a maiúsculas e minúsculas no Swift, portanto, você deve assegurar-se de usar a chave correta em maiúsculas e minúsculas/O valor. Caso contrário, você obterá um valor nil. Vamos ver um exemplo:

Exemplo14O mapeamento de chaves é sensível a maiúsculas e minúsculas

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let val = someDictionary["nepal"]
print(val)

Quando o programa é executado, a saída é:

nil

No chave "nepal" está presente no programa acima. Portanto, ao tentar acessar a chave "nepal", você obterá um valor nil.

3.Se o valor da chave fornecida não existir, há outra maneira de fornecer um valor padrão. Vamos ver um exemplo:

Exemplo12: Valor padrão para chave inexistente

var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let val = someDictionary["nepal", default:"Not Found"]
print(val)

Quando o programa é executado, a saída é:

Não Encontrado

No programa acima, ao acessar o dicionário, especificamos um valor padrão no parâmetro padrão. Se o valor da chave não existir, retorna o valor padrão, caso contrário, retorna esse valor

No nosso exemplo, a chave“nepal”Não existe, portanto o programa retorna o valor padrão: Não Encontrado.