Como Passar um Array para uma Função no PowerShell

  1. Arrays do PowerShell
  2. Passar um Array para uma Função PowerShell
  3. Conclusão
Como Passar um Array para uma Função no PowerShell

Em muitas linguagens de programação, incluindo PowerShell, arrays são uma estrutura de dados fundamental. Eles permitem armazenar coleções de valores de maneira eficiente, tornando-se uma ferramenta crucial para várias tarefas na script de PowerShell.

Este artigo se concentrará em arrays e na convenção de passar um array para uma função no PowerShell.

Arrays do PowerShell

Arrays do PowerShell não são diferentes daqueles arrays em linguagens de programação de propósito geral como Java, Python, C#, etc. Eles fornecem a capacidade de manter coleções de valores ou objetos de qualquer tipo de dado com tamanho fixo.

Sintaxe:

$intTypeArray = 34, 100, 1000, 45, 455, 1

Para verificar o tipo da variável $intTypeArray no exemplo a seguir, usaremos o método embutido GetType().

verifique o tipo da variável 1

Como esperado, o tipo base é System.Array. Como não especificamos explicitamente o tipo de dado deste array, o mecanismo do PowerShell o criou como um array de objetos.

Curiosamente, os arrays do PowerShell podem acomodar tipos diversos de elementos dentro de um único array, conforme exemplificado no trecho de código abaixo.

Código:

$mixedElementArray = 200, 'stringElement', 12.555, 'hello'

Saída:

verifique o tipo da variável 2

Como você pode ver, o array padrão do PowerShell é baseado no tipo Object[].

No PowerShell, todo valor ou objeto é herdado de Object. Portanto, qualquer valor ou objeto pode ser atribuído a um array padrão do PowerShell.

Além dos arrays padrão, o PowerShell oferece uma variante conhecida como arrays tipados fortemente. Esses arrays acomodam exclusivamente coleções de um tipo de dado específico.

Quando criamos um array tipado fortemente, é necessário converter a variável de referência para um tipo de array específico como int32[], string[], etc.

[string[]]$stringTypeArray = 'tesla', 'mecedes', 'audi', 'lambo'

Vamos verificar o tipo de $stringTypeArray.

$stringTypeArray.GetType()

Saída:

verifique o tipo da variável 3

Passar um Array para uma Função PowerShell

No PowerShell, arrays tipados fortemente são recomendados para uso em seus programas PowerShell porque possuem segurança de tipo. Sempre que você precisar passar um array já definido para uma função, a sintaxe a seguir deve funcionar corretamente.

Sintaxe:

function <function_identifier>([<data_type>[]]$<parameter_name>)
{

}

Nesta sintaxe:

  • function: Denota a palavra-chave usada para iniciar a definição de uma função no PowerShell.
  • <function_name>: Representa o nome da função.
  • [<data_type>[]]: Especifica o tipo de dado do parâmetro, permitindo que você trabalhe com arrays do tipo de dado especificado dentro da função.
  • $<parameter_name>: Serve como o nome do parâmetro dentro da função.

Dessa forma, você pode facilmente passar um array para a função. Para ilustrar isso, vamos primeiro definir uma função PowerShell chamada letsPassAnArray.

Código:

function letsPassAnArray([string[]]$stringList) {
    foreach ($arrEle in $stringList) {
        Write-Host $arrEle
    }
}

Neste exemplo, definimos uma função PowerShell chamada letsPassAnArray com um parâmetro chamado $stringList. Então, iniciamos um loop foreach para iterar através de cada elemento ($arrEle) no array $stringList.

Dentro do loop, escrevemos cada elemento do array no console. Para testar a função, criamos um array do tipo string chamado $stringArr com os elementos 'Apple', 'Orange' e 'Grapes'.

Código:

[string[]]$stringArr = 'Apple', 'Orange', 'Grapes'
letsPassAnArray($stringArr)

Finalmente, chamamos a função letsPassAnArray e passamos o array $stringArr como um argumento para ela, fazendo com que a função itere e imprima cada elemento do array.

Saída:

Passe um Array para uma Função PowerShell

Conclusão

No PowerShell, entender arrays e como passá-los para funções é essencial para uma script eficiente e organizada. Quer você esteja trabalhando com arrays genéricos que podem conter vários tipos de dados ou arrays tipados fortemente para segurança de tipo, dominar a manipulação de arrays permitirá que você escreva scripts do PowerShell mais eficazes.

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
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artigo relacionado - PowerShell Array