ПоверСхелл низови: како их креирати и користити

Променљиве су најосновнија структура података у било којој врсти кодирања(any type of coding) . Али појединачне променљиве тешко да су довољне за већину намена, посебно када се ради о сложенијим алгоритмима.

Ту долазе низови. Било да је у питању Ц++ или Питхон(Python) , низови су присутни у сваком програмском језику у неком облику. Али шта је са Виндовс ПоверСхелл-ом(Windows PowerShell) ? Како функционишу ПоверСхелл(PowerShell) низови? Како их користите? Која је њихова синтакса? Хајде да сазнамо.

ПоверСхелл низови 101

Једноставно(Simply) говорећи, низ је само структурирана колекција променљивих. Идеја је да се елиминише мука око праћења десетина имена сажимањем повезаних променљивих у нумерисани скуп.

У ПоверСхелл(PowerShell) -у можете креирати променљиву додавањем симбола $ имену променљиве. На пример:

$prime = 13

Променљива може да садржи било који тип података, од бројева до стрингова. Само треба да користите двоструке или једноструке наводнике да бисте навели низ.

$name = “Levin”

Сада да бисте креирали нови низ, једноставно доделите више вредности истој променљивој, раздвојене зарезима. Овако:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

Неки људи више воле да експлицитно убаце променљиву у низ како би избегли забуну, мада то није неопходно. Да бисте то урадили, ставите вредности у заграде са симболом @.

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

Ово обично долази од користи када покушавате да ставите излаз других команди у низ, где их не можете ручно написати у исправном формату.

Креирање низа

Већ смо видели најчешћи метод креирања низа. Али у зависности од ситуације, постоје и други начини који би могли бити прикладнији. На пример, ако желите да креирате низ који садржи опсег бројева, можете користити оператор опсега:

$digits = (0..9)

Ово ће створити низ од свих десет цифара од нула до девет. Такође можете иницијализовати празан низ, у случају да желите само место за чување вредности касније.

$values = @()

Више(Multiple) низова може чак бити угнежђено један у други, иако ова врста употребе може веома брзо да збуни.

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

Подразумевано, низ може да складишти било који тип променљиве, било да су то бројеви, стрингови или мешавина оба. Али можете експлицитно да дефинишете тип у случају да желите да ограничите вредности које се уносе у њега. На пример:

[int[]] $numbers = 2,3,4,5

На овај начин, низ може да садржи само целе бројеве. Покушај да му се додели било који други тип вредности ће вратити грешку. Ово може бити корисно за спречавање једноставних грешака за низове који искључиво раде са нумеричким вредностима, пошто ће уношење стринга у променљиву која се користи у прорачунима створити проблеме.

Приступ низовима

До сада смо видели више метода за креирање низова који садрже различите типове података. Али како приступити овим подацима?

ПоверСхелл(PowerShell) низови користе исти формат који користе други програмски језици. Свакој променљивој низа може се приступити преко њеног индексног броја. На пример:

$var = $numbers[5]

Ово ће копирати вредност сачувану у индексу пет низа $numbers у променљивој $var . Имајте на уму да индекси низа почињу да броје од 0, тако да се првој ставци приступа са нулом.

Ако бисмо ово избацили, на пример:

“$days[2]”

Добићемо среду, а не уторак.

Исти метод можете користити и за измену ових вредности. На пример, следећа команда ће променити други елемент низа на нулу:

$numbers[1] = 0

Такође можете додати више елемената постојећем низу уместо да мењате вредности тренутних уноса само њиховим додавањем као аритметички израз.

$names += “Johny”

Овај метод се такође може користити за додавање више уноса одједном, или чак читавих низова.

$names += “Charlie, Liam, Teresa”

$names += $surnames

Метода раздвојена зарезима важи и за приступ вишеструким елементима низа. Уношењем овога, на пример, првих пет елемената $даис се чува $days $ $weekdays .

$weekdays = $days[0,1,2,3,4]

Итерација кроз низове

Ручни приступ одређеним елементима низа је добар и добар, али ако желите да извршите радње на целом садржају низа, то може бити заморно. Елегантнији приступ је употреба Фор петље.

Фор петље могу систематски да пролазе кроз све елементе низа, обрађујући сваку вредност према упутствима. Овако можете конструисати такву петљу:

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

Функција арраи.Ленгтх враћа величину низа, што је у основи број елемената у њему. Ово се може укључити у параметар тестног израза петље Фор да би се свеобухватно поновило по свим елементима.

Петља Фореацх(Foreach) и петља Фореацх(Foreach) -објецт могу учинити исто са још мањом ПоверСхелл(PowerShell) скриптом.

Foreach ($day in $days){
    $day}

Ово вам штеди напор да одредите величину низа, остављајући детаље за ПоверСхелл(PowerShell) .

Када треба да користите ПоверСхелл низове(PowerShell Arrays)

Највећи извор грешака у сложеној скрипти су нетачно референциране променљиве. Ово се дешава због присуства великог броја променљивих са јединственим именом, што отежава памћење њихове намене.

Најједноставније решење за овај проблем је широка употреба низова. Све варијабле повезане на неки начин могу се доделити једном низу и приступити преко њихових индексних бројева.

Главни случај употребе Мицрософт ПоверСхелл-а(Microsoft PowerShell’s) је аутоматизација, а низови играју кључну улогу у томе. Објекти које враћају ПоверСхелл(PowerShell) цмдлети могу се чувати у низовима и понављати. Ово омогућава да се узастопни задаци извршавају аутоматски, што у великој мери поједностављује администрацију система.



About the author

Ја сам софтверски инжењер са више од 10 година искуства у области Виндовс инжењеринга. Специјализовао сам се за развој апликација заснованих на Виндовс-у, као и за хардвер и звучне драјвере за Мицрософт-ов оперативни систем Виндовс следеће генерације, Виндовс 11. Моје искуство у прављењу Виндовс апликација чини ме посебно вредним средством за сваку компанију која жели да развије иновативне технолошке производе.



Related posts