Come creare e utilizzare array in PowerShell
Le variabili sono la struttura dati più elementare in quasi tutti i linguaggi di programmazione. Ma onestamente, una singola variabile di solito non è sufficiente, soprattutto quando si ha a che fare con cose più complesse.È qui che entrano in gioco gli array. Che si tratti di C++, Python o PowerShell, gli array sono ovunque in qualche forma. Ma come funzionano effettivamente gli array di PowerShell? Qual è la loro sintassi? E, soprattutto, come si usano senza perdere la testa? Approfondiamo l’argomento.
Array di PowerShell 101
In pratica, un array è semplicemente un insieme di variabili raggruppate. Invece di gestire un mucchio di variabili individuali, si inseriscono i dati correlati in un unico contenitore, con ogni elemento numerato a partire da zero.È una vera salvezza quando si gestiscono molti dati contemporaneamente. In Windows PowerShell, creare un array è semplicissimo.
Le variabili iniziano con il simbolo $. Ad esempio, $prime = 13contengono solo un numero. Ma se si desidera creare un array, è possibile assegnare più valori separati da virgole: $week = "Monday", "Tuesday", "Wednesday". Abbastanza semplice. Tuttavia, alcuni preferiscono rendere le cose esplicite, quindi usano le parentesi con il simbolo @, in questo modo:
$week = @("Monday", "Tuesday", "Wednesday")
Questo è particolarmente utile quando si lavora con l’output di comandi o si vuole evitare confusione sul fatto che si tratti di un singolo valore o di un array. Ah, e se hai bisogno di un intervallo di numeri, ad esempio da 0 a 9, puoi fare:
$digits = 0..9
Crea un array di cifre da zero a nove. Quando si inizializza un array vuoto, è possibile eseguire:
$values = @()
Questa è la tua tabula rasa su cui aggiungere elementi in seguito. E se l’annidamento è la tua passione, certo, gli array possono contenere altri array:
$coordinates = @( (5, 10, 23), (11, 7, 16) )
Un piccolo avvertimento: l’annidamento può creare confusione rapidamente, quindi usatelo con parsimonia, a meno che non siate esperti. Gli array di PowerShell sono sufficientemente flessibili da contenere tipi misti, ma se volete limitarli solo a determinati tipi di dati, potete procedere in questo modo:
[int[]] $numbers = 2, 3, 4, 5
In questo modo, non si inserisce accidentalmente una stringa al posto di un numero, il che può causare problemi in seguito. Se non si presta attenzione ai tipi, tendono a verificarsi strani bug.
Accesso e modifica dei dati dell’array
Quindi, una volta ottenuto l’array, come si estrae qualcosa da esso? Facile: tramite indice. Ricordate, gli indici degli array partono da zero. Quindi, se volete il sesto elemento, è $numbers[5]. Per esempio:
$var = $numbers[5]
Questo copia il valore all’indice cinque in una nuova variabile. Vuoi leggere “Mercoledì” da un array chiamato $days? Basta digitare $days[2]. Nota: a causa del conteggio a partire da zero, il primo elemento è $days[0].
È anche possibile modificare i valori dell’array al volo. Ad esempio, per impostare il secondo elemento a zero, esegui:
$numbers[1] = 0
Facile. Per aggiungere nuovi elementi a un array esistente, puoi semplicemente aggiungere +=. Ad esempio, $names += "Johny"aggiunge “Johny” alla fine dell’array $names. Oppure, per aggiungerne più contemporaneamente: $names += "Charlie", "Liam", "Teresa". Se hai un altro array, ad esempio $surnames, puoi farlo $names += $surnamesper unirli.
Eseguire cicli attraverso array in modo semplice
A volte, accedere manualmente a ogni elemento può essere un problema, soprattutto se si vuole fare qualcosa con tutti. PowerShell offre un paio di opzioni interessanti. Il ciclo for tradizionale si presenta così:
for ($i = 0; $i -lt $days. Length; $i++) { $days[$i] }
Questo ciclo analizzerà ogni elemento ed eseguirà tutto ciò che gli dirai. Il ciclo foreach è ancora più intuitivo e meno soggetto a errori:
foreach ($day in $days) { $day }
Davvero, in alcune configurazioni potrebbe essere inizialmente necessario il ciclo for, ma una volta che ci si abitua a foreach, tutto diventa più semplice.
Quando sono utili gli array di PowerShell?
Il grande problema dello scripting senza array è il caos delle variabili: molti nomi di variabili univoci, facili da dimenticare o con riferimenti errati. L’utilizzo di array vincola tutti i dati correlati in un unico contenitore gestibile, riducendo i bug e rendendo gli script più ordinati. Questo è particolarmente vero nell’automazione, dove gli output dei cmdlet sono oggetti che devono essere archiviati da qualche parte, e gli array sono perfetti per questo scopo. Ricorda solo che, se stai estraendo dati da un cmdlet, come gli oggetti di PowerShell, puoi inserirli in un array per una migliore gestione.
E sì, all’inizio può sembrare strano, ma una volta che si inizia a usare gli array in modo efficace, gli script tendono a diventare più puliti e facili da gestire. Bisogna solo fare attenzione a tipi e indici, perché ovviamente PowerShell deve rendere la gestione più complessa del necessario.
Articoli correlati
Questo articolo è stato utile?