Como Criar um Array, Tabela Hash e Dicionário no PowerShell

  1. Criando Arrays no PowerShell
  2. Trabalhando com Tabelas Hash no PowerShell
  3. Criando Dicionários Ordenados no PowerShell
  4. Tabela Hash vs. Dicionário Ordenado: Principais Diferenças
  5. Casos de Uso do Mundo Real
  6. Conclusão
  7. Perguntas Frequentes (FAQ)
Como Criar um Array, Tabela Hash e Dicionário no PowerShell

O PowerShell fornece várias estruturas de dados para armazenar e manipular dados de forma eficiente. Arrays, tabelas hash e dicionários ordenados são estruturas fundamentais que ajudam a lidar com diferentes tipos de coleções de dados em scripts e tarefas de automação.

Entender como usar essas estruturas de dados permite uma melhor organização, recuperação eficiente e gerenciamento estruturado de dados em scripts do PowerShell. Neste guia, exploraremos como:

  • Criar e manipular arrays no PowerShell
  • Usar tabelas hash para armazenamento de chave-valor
  • Trabalhar com dicionários ordenados para manter a ordem dos dados
  • Comparar tabelas hash e dicionários ordenados
  • Implementar casos de uso do mundo real para cada estrutura

Ao final deste tutorial, você terá uma compreensão sólida de como trabalhar com essas estruturas de dados no PowerShell.

Criando Arrays no PowerShell

O que é um Array no PowerShell?

Um array no PowerShell é uma coleção de múltiplos valores armazenados em uma única variável. Arrays permitem que você armazene e manipule listas de dados de forma eficiente.

Declarando um Array usando @()

A maneira correta de inicializar um array no PowerShell é usando a sintaxe @(). Aqui está como você pode criar um array com três elementos de string:

$data = @('apple', 'ball', 'cat')

Saída:

apple
ball
cat

Criando um Array Vazio

Se você precisar de um array vazio que será preenchido mais tarde, declare-o usando:

$data = @()

Obtendo o Tipo de Dado de um Array

Você pode verificar o tipo de um array usando o método .GetType():

$data.GetType()

Saída:

IsPublic IsSerial Name       BaseType    
-------- -------- ----       --------    
True     True     Object[]   System.Array

Acessando Elementos em um Array

Arrays são indexados a partir de zero, o que significa que o primeiro item está no índice [0].

$data[0]  # Retrieves the first item

Saída:

apple

Para acessar o último elemento de um array dinamicamente, use:

$data[-1]

Saída:

cat

Adicionando Itens a um Array

Como os arrays do PowerShell são imutáveis, você não pode adicionar itens diretamente como em Python ou JavaScript. Em vez disso, você precisa criar um novo array que inclua o item adicional:

$data += 'dog'

Saída:

apple
ball
cat
dog

Removendo Itens de um Array

Para remover um item, use o filtro de array:

$data = $data | Where-Object { $_ -ne 'ball' }

Saída:

apple
cat
dog

Trabalhando com Tabelas Hash no PowerShell

O que é uma Tabela Hash?

Uma tabela hash é uma estrutura de armazenamento de chave-valor que permite recuperar valores usando chaves únicas de forma eficiente. Tabelas hash também são conhecidas como dicionários ou arrays associativos.

Criando uma Tabela Hash

Para declarar uma tabela hash no PowerShell, use a sintaxe @{}:

$hash = @{Fruit = "Apple"; Color = "Red"; Count = 5 }

Visualizando o Conteúdo da Tabela Hash

$hash

Saída:

Name   Value
----   -----
Fruit  Apple
Color  Red
Count  5

Acessando Valores em uma Tabela Hash

Você pode acessar valores usando suas chaves:

$hash['Color']

Saída:

Red

Alternativamente, você pode usar a notação de ponto:

$hash.Count

Saída:

5

Adicionando e Removendo Itens em uma Tabela Hash

Adicionando um Novo Par Chave-Valor

$hash['Shape'] = 'Round'

Removendo um Par Chave-Valor

$hash.Remove('Color')

Criando Dicionários Ordenados no PowerShell

Por que Usar um Dicionário Ordenado?

Uma tabela hash não mantém a ordem de inserção, mas um dicionário ordenado sim. Isso é útil quando a sequência dos dados é importante.

Declarando um Dicionário Ordenado

Use o atributo [ordered]:

$dict = [ordered]@{Fruit = "Apple"; Color = "Red"; Count = 5 }

Acessando Elementos do Dicionário Ordenado

$dict['Fruit']

Saída:

Apple

Mantendo a Ordem

Se você imprimir uma tabela hash normal várias vezes, a ordem pode mudar. No entanto, com um dicionário ordenado, a ordem permanece consistente.

$dict

Saída:

Name   Value
----   -----
Fruit  Apple
Color  Red
Count  5

Tabela Hash vs. Dicionário Ordenado: Principais Diferenças

Recurso Tabela Hash Dicionário Ordenado
Mantém Ordem? ❌ Não ✅ Sim
Velocidade de Acesso ✅ Rápido ✅ Rápido
Melhor Para Acesso aleatório Preservar a ordem das chaves

Casos de Uso do Mundo Real

Caso de Uso 1: Armazenando Informações do Usuário (Exemplo de Dicionário Ordenado)

$user = [ordered]@{
    Name = "John Doe"
    Email = "johndoe@example.com"
    Role = "Admin"
}

Caso de Uso 2: Contando Ocorrências de Palavras (Exemplo de Tabela Hash)

$text = "apple banana apple orange apple banana"
$wordCount = @{}

$text.Split() | ForEach-Object {
    if ($wordCount.ContainsKey($_)) {
        $wordCount[$_] += 1
    } else {
        $wordCount[$_] = 1
    }
}

$wordCount

Saída:

Name   Value
----   -----
apple  3
banana 2
orange 1

Conclusão

O PowerShell fornece arrays, tabelas hash e dicionários ordenados para armazenar e manipular dados de forma eficiente.

  • Use arrays (@()) ao trabalhar com uma lista de valores.
  • Use tabelas hash (@{}) para armazenamento de chave-valor sem restrições de ordem.
  • Use dicionários ordenados ([ordered]@{}) quando preservar a ordem de inserção for essencial.

Dominar essas estruturas de dados irá melhorar sua eficiência em scripts e capacidades de automação no PowerShell. 🚀

Perguntas Frequentes (FAQ)

Qual é a diferença entre uma tabela hash e um dicionário no PowerShell?

No PowerShell, uma tabela hash e um dicionário são frequentemente usados de forma intercambiável. No entanto, dicionários são parte do framework .NET (System.Collections.Hashtable), enquanto tabelas hash no PowerShell (@{}) são embutidas e otimizadas para scripting no PowerShell.

Como posso adicionar ou remover itens de um array no PowerShell?

Como arrays são imutáveis no PowerShell, você não pode modificá-los diretamente. Em vez disso, use:

  • Adicionando um item: $array += 'newItem'
  • Removendo um item: $array = $array | Where-Object { $_ -ne 'itemToRemove' }

Posso classificar uma tabela hash no PowerShell?

Sim, você pode usar um dicionário ordenado ([ordered]@{}) ou converter a tabela hash para um formato ordenado usando:

$sortedHash = $hash.GetEnumerator() | Sort-Object Name
$sortedHash

Isso garante que as chaves sejam exibidas em ordem alfabética.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artigo relacionado - PowerShell Array