Pasar un Array a una Función en PowerShell

Migel Hewage Nimesha 15 febrero 2024
  1. Matrices de PowerShell
  2. Pasar una matriz a una función de PowerShell
Pasar un Array a una Función en PowerShell

Este artículo se centrará en las matrices y la convención de pasar una matriz a una función en PowerShell.

Matrices de PowerShell

Los arreglos de PowerShell no son diferentes a los arreglos en lenguajes de programación de propósito general como Java, Python, C#, etc. Puede contener valores u objetos primitivos de tamaño fijo de cualquier tipo de datos.

Sintaxis:

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

Para verificar el tipo de la variable $intTypeArray en el siguiente ejemplo, usaremos el método incorporado GetType().

comprobar el tipo de la variable 1

Como era de esperar, el tipo base es System.Array. Dado que no hemos especificado explícitamente el tipo de datos de esta matriz, el motor de PowerShell lo ha creado como una matriz de objetos.

Es posible contener diferentes tipos de elementos en una sola matriz, como se muestra en el siguiente código.

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

Producción:

comprobar el tipo de la variable 2

Como puede ver, la matriz de PowerShell predeterminada se basa en el tipo Objeto[].

En PowerShell, cada valor u objeto se hereda del Objeto. Por lo tanto, cualquier valor u objeto se puede asignar a una matriz de PowerShell predeterminada.

Existe otra variante de las matrices de PowerShell denominadas matrices fuertemente tipadas. Las matrices creadas como fuertemente tipadas pueden contener solo un tipo específico de colección de elementos.

Cuando creamos una matriz fuertemente tipada, es necesario convertir la variable de referencia a un tipo de matriz específico como int32[], string[], etc.

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

Comprobemos el tipo de $stringTypeArray.

$stringTypeArray.GetType()

Producción:

comprobar el tipo de la variable 3

Pasar una matriz a una función de PowerShell

Se recomienda el uso de matrices fuertemente tipadas en sus programas de PowerShell porque tiene seguridad de tipo. Siempre que necesite pasar una matriz ya definida a una función, la siguiente sintaxis debería funcionar correctamente.

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

}

De esta manera, puede pasar fácilmente una matriz a la función. Primero definamos una función de PowerShell llamada letsPassAnArray.

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

En este caso, estamos pasando una matriz de tipo cadena e imprimiendo cada elemento dentro de la matriz usando el operador foreach.

A continuación, vamos a llamar a esta función desde el script de PowerShell. Asegúrese de crear también una matriz de tipo cadena.

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

Producción:

Pasar una matriz a una función de PowerShell

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.

Artículo relacionado - PowerShell Array