Почему в PowerShell: для ($ i = 0; -le $ total-1; $ i ++) вместо for ($ i = 0; -lt $ total; $ i ++) - PullRequest
5 голосов
/ 24 мая 2011

Я смотрю на некоторые примеры кода на powershellpro.com и не понимаю, почему он написал пример кода, который проходит через массив следующим образом:

... с шагом приращения, начинающимся с нуля, затем увеличивающимся на единицу, пока он не станет меньше или равен длине массива минус один ...

for ($i=0; $i -le $total-1; $i++)

... вместо начала приращения с нуля, затем увеличивайте на единицу, пока он не станет меньше длины массива ...

for ($i=0; $i -lt $total; $i++)

Я что-то упустил? Они функционально эквивалентны и оба будут проходить через каждый элемент в массиве. Лично я считаю, что вторая версия чище. Есть ли лучшая практика или что-то, что говорит, что вы должны использовать первую?

Ответы [ 3 ]

8 голосов
/ 25 мая 2011

>> Я что-то упустил?
Нет

>> Есть ли лучшая практика или что-то, что говорит, что вы должны использовать первую?
использование цикла for в powershell такое же, как и в любом другом языке. зависит только от отношения программиста, какой стиль он использует.

4 голосов
/ 10 сентября 2013

Оба функционально эквивалентны, но чем точнее код, тем легче его читать некоторым людям.Кроме того, я думаю, что есть синтаксическая проблема с вопросом оригинального автора.(Поправьте меня, если я ошибаюсь.) Я упоминаю это не как критику, а только в том случае, если новичок это читает и запутывается.Многие могут посчитать это лучшей версией фрагмента кода, о котором идет речь:

for($i = 0; $i -lt $total; $i++){
  #do something
}

Обратите внимание на $ i в сегменте условий перед -lt.

1 голос
/ 24 мая 2011

Нет абсолютно никакой разницы.это просто вопрос вкуса.Первый фрагмент остановит цикл , когда $i=$total-1.Второй до $i=$total.это точно так же.

ИМХО

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...