Úvod do poľa v PowerShell
Pole je typ dátovej štruktúry, ktorú je možné použiť na ukladanie kolekcie položiek, kolekcia položiek môže byť buď rovnakého typu údajov alebo rôznych. K prvkom v poli je možné pristupovať pomocou indexu. Index poľa obvykle začína na 0, takže na prístup k prvému prvku musíte použiť index (0). Zvyčajne môžu byť na poli iba dve operácie, tj pridanie prvku do poľa alebo odstránenie prvku. V tomto článku sa budeme dozvedieť o Array v PowerShell.
Definovanie poľa v PowerShell
Pole možno definovať ktorýmkoľvek z nasledujúcich spôsobov,
@ () Je jedným zo spôsobov, ako definovať pole.
Príklad:
$Subject = @('History', 'Geo', 'Maths')
- Pole je možné vytvoriť aj ako zoznam oddelený čiarkami.
$test='testone', 'testtwo', 'testthree'
- Pole je možné vytvoriť pre konkrétny prvok údajového typu nasledovne:
(int()) $numbersarray = 1, 2, 3, 4, 5
Vyššie uvedené je celé pole a môže obsahovať iba celé čísla.
Prístup k poľu
Definujme pole,
Príklad:
('test1', 'test2', 'test3', 'test4')
$ test (0) vráti test1, $ test (3) vráti test4. Mnoho jazykov umožňuje zadať iba jeden index, zatiaľ čo v PowerShell je možné súčasne používať viacero indexov.
Vo vyššie uvedenom $ teste (1, 3) sa vráti,
test2
test4
Operácie na poli
Pridávanie položiek do poľa. Pozrime sa na príklad, ako pridať prvok do existujúceho poľa.
Príklad:
('welcome', 'home')
Na pridanie do vyššie uvedeného poľa sa použije operátor '+ ='.
$ Test + = 'Raj'
Spustený $ test sa vráti,
vitajte
Domov
raj
Získanie počtu polí
Tu vysvetlíme, ako použiť nasledujúci vstup na získanie počtu polí.
vstup:
('test1', 'ertr', 'fgdfgfd', 'dfgfdg', 'dfdfsd', 'dfgfdgdfg')
$ test.Count vráti 6, čo je počet / dĺžka poľa.
1. Triedenie prvkov v poli
Operátor triedenia sa môže použiť na triedenie prvkov poľa, ak sú prvky rovnakého dátového typu.
vstup:
('oneee', 'zddsdsad', 'thraewawe')
$test |sort
Vyššie uvedený príkaz zoradí prvky vzostupne
Výkon:
vstup:
$test |sort -Descending will sort the elements in the descending order
Výkon:
2. Aktualizácia položky v poli
Index možno použiť na aktualizáciu prvku v poli
vstup:
('oneee', 'zddsdsad', 'thraewawe')
$test(0)='changed'
Vyššie uvedený príkaz zmení „jeden“ na „zmenený“. Vykonanie $ testu sa vráti
Výkon:
3. Nájdenie prvku v poli
Na kontrolu hodnoty poľa sa môže použiť podobný operátor
vstup:
('viki', ramu, 'aravind', 'vikram')
$test -like "*vik*"
Výkon:
Viacrozmerné pole v PowerShell
Môžeme vytvoriť viacrozmerné pole nasledovne:
$testMultidimensionalArrays = @(1, 2, 3), @(4, 5, 6), @(7, 8, 9)
Každé pole má jeden riadok a tri stĺpce.
Opakovanie poľa
Rovnako ako v iných jazykoch, aj slučka for loop sa môže použiť na slučovanie položiek v poli.
vstup:
('viki', 'ramu', 'aravind', 'vikram')
for($i=0;$i -lt $test.Length; $i++)
(
Write-Host $test($i) )
Výstup :
For-each sa dá použiť na vykonanie akcie proti každej položke v poli.
vstup:
(1, 4, 5, 6, 7, 8, 9, 10)
foreach($i in $test)
(
$i=$i+5
Write-Host $i
)
Výkon:
Zoznam polí v PowerShell
Jednou z nevýhod programu Array je pridávanie položiek, aby sme prekonali, že máme zoznam polí.
Nasleduje syntax na vytvorenie zoznamu polí,
$myarray = (System.Collections.ArrayList)::new()
$myarray.Add(1)
$myarray.Add(2)
$myarray.Add(3)
$myarray
Prvý riadok je spôsob, ako inicializovať zoznam polí a nasledujúce riadky majú pridať položky do zoznamu polí
Array verzus Array List Performance
Nasledujúce príklady ukazujú rozdiel vo výkone pri vykonávaní operácie na poli a zozname polí
vstup:
Measure-Command -Expression ( 0..250 | ForEach-Object ( $arr += $_+1 ))
$arrlit = (System.Collections.ArrayList)@()
$f arrlit _performance = Measure-Command -Expression ( 0..250 | ForEach-Object ( $ arrlit += $_+1 ))
$ arrlit _performance
Prvý príkaz vykonáva operáciu na poli a tretí riadok robí to isté v zozname polí.
Výkon:
- Výkonnosť súboru
- Výkonnosť zoznamu polí
Výkonnosť zoznamu polí je rýchlejšia a lepšia ako výkonnosť poľa.
Príklad poľa v PowerShell
Nasleduje príklad na nájdenie dĺžky poľa používajúceho pre slučku, slučku foreach a while loop.
vstup:
$testlist = 5.634, 4.512323, 3.312323, 13.2213213, 4.02324, 34.3334324, 34.04324, 45.4534324, 99.993234324, 11123234234 write-host("Printing the array elements")
$testlist
write-host("length of array")
$testlist.Length
write-host("fifth element in array")
$testlist(4) write-host("partial array")
$subList = $testlist(1..3) write-host("using for loop")
for ($i = 0; $i -le ($testlist.length - 1); $i += 1) (
$testlist($i) )
write-host("using forEach Loop")
foreach ($e in $testlist) (
$e
)
write-host("using while Loop")
$i = 0
while($i -lt 4) (
$testlist($i);
$i++
)
write-host("Assign values")
$testlist(1) = 10
$testlist
Výkon:
Hašovací stôl
Hašovacia tabuľka sa používa na implementáciu štruktúrovaného poľa. V hašovacej tabuľke sú hodnoty uložené vo formáte kľúč-hodnota. Sú známe aj ako Slovník alebo Asociatívne pole.
syntaxe:
()
alebo
( key1=”test1”;key2=”test2”;key3=”test3”)
Kde key1, key2 a key3 sú kľúče a test1, test2 a test3 sú hodnoty.
Vstup :
$testhashtable
Výkon:
K kľúču alebo hodnotám sa dá pristupovať pomocou operátora .dot nasledujúcim spôsobom
vstup:
$testhashtable.keys
Výkon:
vstup:
$testhashtable.Values
Výkon:
príklad
Nasleduje príklad na nájdenie všetkých hashtable klávesov a hashtable hodnôt.
vstup:
$testht = @( English = "85"; Tamil = "100"; maths = "100")
write-host("Printing all the hashtable keys")
$testht.keys
write-host("Printing all the hashtable values")
$testht.values
write-host("print Size")
$testht.Count
write-host("Add key-value")
$testht("Social") = "100"
write-host("Add key-value")
$testht.Add("ss", "110")
write-host("Size")
$testht.Count
write-host("Remove English")
$testht.Remove("English")
write-host("curentSize")
$testht.Count
write-host("sortinh by key")
$testht.GetEnumerator() | Sort-Object -Property key
Výkon:
Záver - pole v PowerShell
Hlavnou výhodou poľa je správa pamäte. Sú prístupné priamo z vyrovnávacej pamäte, čo pomáha pri rýchlejšom vyhľadávaní. Sú opakovane použiteľné, akonáhle je vyhlásené, môžu byť opakovane použité opakovane.
Odporúčané články
Toto je príručka pre Array v PowerShell. Tu diskutujeme o zavedení a implementácii poľa, zoznamu polí a hašovacej tabuľky v PowerShell. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- PowerShell vs CMD
- Top 7 verzií PowerShell
- Výhody poľa
- Kľúčový rozdiel medzi PowerShell a Bash