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