01.12.2009, 20:40
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
e1f,
можно пример кода, как это там выглядит?
|
|
01.12.2009, 20:43
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
for my $item (@items) {
# do something
}
|
|
01.12.2009, 21:15
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
так я и думал
это не счетчик с циклом, а совместный цикл, предназначенный для перебора элементов хэш-массива
с таким же успехом мог перевести тему на javascript, и сказать что в цикле for...in нету никаких счетчиков.
или написать свой язык в котором конструкцией for обозначается что-угодно
когда я писал об уместности употребления именно цикла со счетчиком, который в PHP записывается как for(;
то, что ты перескочил на другую синтаксическую структуру из другого языка - это хреновый аргумент.
даже хуже чем привел Kolyaj в данном обсуждении
Былинный отказ десу!
|
|
01.12.2009, 22:08
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Gvozd
|
даже хуже чем привел Kolyaj в данном обсуждении
|
Я не приводил никаких аргументов, я сказал, что ты хреновые привел
В данном конкретном случае for уместней, тем более, что даже счетчик есть.
|
|
01.12.2009, 22:16
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от Kolyaj
|
Я не приводил никаких аргументов, я сказал, что ты хреновые привел
|
Да, я в курсе)
именно к этому я и отсылаю
|
|
02.12.2009, 01:54
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от Gvozd
|
так я и думал
это не счетчик с циклом, а совместный цикл, предназначенный для перебора элементов хэш-массива
|
ЩИТО? Учите матчасть (aka perl) @items -- именно массив, а ни вкоем случае ни хэш-массив. Хэш -- это %items, и перебор его ключей есть
Код:
|
for my $item (keys %items) |
значений соответственно
Код:
|
for my $item (values %items) |
Отказ не принят
|
|
02.12.2009, 02:24
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от e1f
|
@items -- именно массив
|
да, хоть объект содержащий свойства.
все суть контейнер.
без контейнера эта синтаксическая конструкция не употребляется.
точно также как foreach($array as $key=>$value) (PHP) или for(key in array) (JS)
если нету array-а, то и конструкции эти использовать нельзя.
или в Perl цикл со счетчиком, и цикл для перебора индексов/ключей/свойств есть одна синтаксическая структура?
что-то не верится
но даже если это так, я изначально говорил прежде всего о PHP
не о JS(хотя для него тут мое мнение такое же)
не о C(в нем я наоборот часто себе позволяю использование циклов "не по правилам", в связи с разностью областей моего личного их знания и применения)
не о Perl, в котором я не специалист
не о Brainfuck в котором один вид цикла/условия, и не может быть вопроса "что использовать"(зато вопрос "как сделать" возникает)))
PS непринятие отказа отклонено
|
|
02.12.2009, 10:01
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от Gvozd
|
или в Perl цикл со счетчиком, и цикл для перебора индексов/ключей/свойств есть одна синтаксическая структура?
|
Бинго!
Сообщение от Gvozd
|
но даже если это так, я изначально говорил прежде всего о PHP
|
Ну, из заявления
Сообщение от Gvozd
|
так как считаю, что для простейших задач циклы должны использоваться так, как это изначально предполагается, то есть for-когда известно количество итераций, а while-когда неизвестно количество итераций, но известно другое условие выхода
|
сложно судить, о языке именно идет речь, спор скорее о методологии программирования
А насчет JS, так я часто использую, к примеру, for таким вот образом:
for (var i = array.length; i--; ) {
// do something
}
Не надо кешировать/перезапрашивать длину, экономим на условии <. Тоже неправильный, по-вашему, подход к for'у?
P.S. Все равно отказ не принят
|
|
02.12.2009, 20:42
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
блин, ну мне даже интересно, как же именно в перле записывается цикл со счетчиком. напиши, пожалуйста
Сообщение от e1f
|
Ну, из заявления... ...сложно судить, о языке именно идет речь
|
Это следует из изначальной темы, хотя, мы уже плавно перешли в офффтоп
Сообщение от e1f
|
Тоже неправильный, по-вашему, подход к for'у?
|
Бинго!
просматривая код вскользь между строк, не скажешь сразу, что этот цикл делает и в каком порядке.
в отличии от наверняка и всеми узнаваемой конструкции
for(i=0;i<arr.length;i++)
|
|
02.12.2009, 23:45
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от Gvozd
|
блин, ну мне даже интересно, как же именно в перле записывается цикл со счетчиком. напиши, пожалуйста
|
Ты не поверишь
Код:
|
for ( my $i = 0 ; $i < @items ; $i++ ) {
# do
} |
либо ( for и foreach -- полностью взаимозаменяемы )
Код:
|
foreach ( my $i = 0 ; $i < @items ; $i++ ) {
# do
} |
|
|
|
|