Dicionário F# Mutável

Neste artigo, você aprenderá como criar e usar dicionários mutáveis ​​do F# . Este tutorial visa fornecer uma introdução básica à criação, inicialização e atualização de um dicionário, bem como demonstrar como iterar os valores em um dicionário, adicionar, remover e atualizar seus elementos.

F# tem várias vantagens sobre outras linguagens de programação, como imutabilidade e expressividade. No entanto, há situações em que estruturas de dados mutáveis, como dicionários, podem ser mais convenientes.

F# fornece um sistema para criar e modificar dicionários mutáveis ​​usando a classe System.Collections.Generic.Dictionary <' TKey , ' TValue >.



Criação de um dicionário mutável

A palavra-chave new é usada para criar dicionários mutáveis, que são passados ​​para o construtor de listas para se tornarem mutáveis.

Isso pode ser demonstrado pelo seguinte exemplo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Creating a Dictionary
open System.Collections.Generic
let actors = new Dictionary<string, string>()
actors.Add("Jennifer Aniston", "1969")
actors.Add("Kevin Hart", "1979")
actors.Add("Matt LeBlanc", "1967")
actors.Add("Morgan Freeman", "1937")
actors.Add("Samuel L. Jackson", "1948")
printfn "Dictionary – actors: %A" actors
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Saída:

Dictionary - actors: seq
[[Jennifer Aniston, 1969]; [Kevin Hart, 1979]; [Matt LeBlanc, 1967];
[Morgan Freeman, 1937]; ...]

A classe Dictionary(TKey,TValue)

A classe Dictionary( TKey , TValue ) refere-se a um conjunto de chaves e valores separados por vírgulas.

Aqui está uma tabela que mostra as propriedades, construtores e métodos que compõem a classe List(T) conforme listado abaixo:

Propriedades Visão geral
comparador Fornece o IEqualityComparer(T) que determina se as chaves no dicionário são iguais ou não.
Contar Esta função retorna o número de pares chave/valor que estão presentes no Dictionary(TKey,TValue).
Item O valor associado à chave especificada pode ser recuperado ou definido usando este método.
Chaves O resultado desse método é uma coleção que contém as chaves no Dictionary(TKey, TValue).
valores A função retorna uma coleção contendo os valores no Dictionary(TKey, TValue).

Construtores Visão geral
Dicionário(TKey, TVvalor)() Uma instância da classe Dictionary(TKey, TValue) é criada quando o construtor é chamado com uma instância vazia, a capacidade inicial padrão e o comparador de igualdade para o tipo de chave como padrão.
Dictionary(TKey, TValue)(IDictionary(TKey, TValue)) Atribui uma instância da classe Dictionary(TKey, TValue) a um tipo de chave; o dicionário (TKey e TValue) é preenchido com elementos copiados da classe IDictionary(TKey, TValue), usando o comparador de igualdade padrão para o tipo de chave.
Dictionary(TKey, TValue)(IEqualityComparer(TKey)) Nesse método, ele criará uma nova instância da classe Dictionary(TKey, TValue) que possui os valores iniciais padrão, estará vazia, terá uma capacidade padrão e usará o IEqualityComparer(T) especificado.
Dicionário(TKey, TValue)(Int32) A classe Dictionary(TKey, TValue) é criada usando o comparador de igualdade padrão para o tipo de chave e inicializa uma instância vazia dessa classe com a capacidade inicial especificada e uma instância vazia com a capacidade inicial especificada.
Dictionary(TKey, TValue)(IDictionary(TKey, TValue), IEqualityComparer(TKey)) A classe Dictionary(TKey, TValue) é inicializada com os elementos da classe IDictionary(TKey, TValue) copiados do Dictionary(TKey, TValue) especificado. Um comparador de igualdade também é definido como IEqualityComparer(T).
Dictionary(TKey, TValue)(Int32, IEqualityComparer(TKey)) Uma instância da classe Dictionary(TKey, TValue) é inicializada com uma string vazia, com uma capacidade inicial especificada pelo parâmetro especificado e é configurada para usar o valor especificado de IEqualityComparer (T ) .
Dictionary(TKey, TValue)(SerializationInfo, StreamingContext) A classe idictionary(TKey, TValue) é usada para serializar um conjunto de dados em uma única instância da classe.

Métodos Visão geral
Adicionar O dicionário é adicionado com a chave e o valor que você especificar.
Claro O método a seguir remove todas as chaves e valores do Dictionary(TKey, TValue).
ContémChave Conforme demonstrado no código a seguir, o método a seguir remove todas as chaves e valores do Dictionary(TKey, TValue).
ContémValor Existe um método que determina se um determinado valor está presente no Dictionary(TKey, TValue).
Igual a (objeto) Obtém uma comparação entre o objeto especificado e o objeto atual comparando-o com o objeto especificado. Essa propriedade é herdada do objeto.
Finalizar O coletor de lixo permite que o objeto contêiner tente liberar recursos antes que ele possa ser recuperado para reutilização por meio de outras operações de limpeza. (Herdado de um objeto.)
ObterEnumerador O seguinte é o valor de retorno da função que itera pelo Dictionary(TKey, TValue).
GetHashCode Esta função tem a função de servir como a função de hash padrão. (Ele herda da classe Object).
GetObjectData Ao implementar a interface System.Runtime.Serialization.ISerializable, a instância Dictionary(TKey, TValue) é retornada com todos os dados necessários para a serialização.
GetType O tipo da instância atual é retornado por este método. (Herdado de um objeto.)
MemberwiseClone Este método criará uma cópia rasa do objeto atual. (Herdado do objeto.)
OnDeserialization Quando o processo de desserialização é concluído, ele gera o evento de desserialização e retorna para a função de retorno de chamada. Define a interface System.Runtime.Serialization.ISerializable.
Remover Esta função exclui o valor associado à chave especificada do Dictionary(TKey, TValue).
Para sequenciar A função retorna uma string contendo o nome do objeto atual. (Herdado de um objeto.)
TryGetValue Este método retorna o valor associado à chave especificada na solicitação.

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Creating a Dictionary
open System.Collections.Generic
let actors = new Dictionary<string, string>()
actors.Add("Jennifer Aniston", "1969")
actors.Add("Kevin Hart", "1979")
actors.Add("Matt LeBlanc", "1967")
actors.Add("Morgan Freeman", "1937")
actors.Add("Samuel L. Jackson", "1948")
printfn "Dictionary – actors: %A" actors
printfn "\nTotal Number of Actors: %d" actors.Count
printfn "\nThe keys: %A" actors.Keys
printfn "\nThe Values: %A" actors.Values
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

E o resultado será o seguinte:

Dictionary - actors: seq
[[Jennifer Aniston, 1969]; [Kevin Hart, 1979]; [Matt LeBlanc, 1967];
[Morgan Freeman, 1937]; ...]
Total Number of Actors: 5
The keys: seq ["Jennifer Aniston"; "Kevin Hart"; "Matt LeBlanc"; "Morgan Freeman"; ...]
The Values: seq ["1969"; "1979"; "1967"; "1937"; ...]

Exemplo de Explicação

  • Primeiro abrimos o namespace System.Collections.Generic que contém a classe Dictionary < TKey , TValue > que usamos para criar um dicionário. Em seguida, criamos um novo dicionário mutável com chaves de string e valores de string usando a classe Dictionary < TKey , TValue > e o armazenamos em uma variável chamada atores.
  • Para adicionar pares chave-valor ao dicionário de atores, usamos o método Add da classe Dictionary < TKey , TValue > para adicionar cinco pares chave-valor.
  • Em seguida, usamos a função printfn para imprimir o dicionário de atores, o número de atores no dicionário usando a propriedade Count, as chaves no dicionário usando a propriedade Keys e os valores no dicionário usando a propriedade Values. Usamos o especificador de formato %A com printfn para imprimir os valores de objetos complexos, como dicionários e listas.

Se você achou nosso artigo sobre F# Mutable Dictionary informativo e útil, adoraríamos ouvir seus comentários! Sinta-se à vontade para compartilhar seus pensamentos e opiniões, reagindo abaixo. Obrigado por ler!

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone