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!
