Да - это называется for
l oop!
Для структур данных, которые мы можем индексировать в (массивы, списки и т. Д. c.), * Оператор 1006 * l oop может быть легко переведен в оператор for
l oop, например:
# This foreach loop statement
foreach($item in $array){
Do-Something $item
}
# ... is functionally identical to this for loop statement
for($i = 0; $i -gt $array.Length; $i++){
$item = $array[$i]
Do-Something $item
}
Поскольку у нас есть прямой доступ к текущему index ( через $i
) в for
l oop, теперь мы можем использовать это как смещение, чтобы «осмотреть» эту позицию в массиве:
$array = @(1,2,3,4)
for($i = 0; $i -lt $array.Length;$i++)
{
$item = $array[$i]
if($i -gt 0){
# If our index position $i is greater than zero,
# then there must be _at least_ 1 item "behind" us
$behind = $array[$i - 1]
}
if($i -lt ($array.Length - 1)){
# Not at end of array, we can also "look ahead"
$ahead = $array[$i + 1]
}
}
Будьте внимательны, проверяя, что не используйте значение $i
больше $array.Length
(что приведет к $null
) или меньше 0
(в этом случае PowerShell начнет читать массив в обратном направлении!)