[Ruby] Вопрос по итераторам
Kirill A. Shutemov
k.shutemov на sam-solutions.net
Пт Дек 3 15:35:41 MSK 2004
On Fri, Dec 03, 2004 at 11:55:53AM +0200, Kravchenko Sergey wrote:
> Спасибо за ответ, но вариант с next мне не подходит.
> Как я уже сказал, необходимо перейти к следующему значению итерации,
> _не возвращаясь в начало цикла_
> Насколько я понимаю, такая возможность должна быть предусмотрена в самом
> интерпретаторе, но подобной команды я в описании языка не нашёл - возможно,
> она всё-таки не предусмотрена. Если это действительно так - хотелось бы
> узнать мнение народа по этому поводу. Может быть есть какой-нибудь способ
> сделать это красиво? ;)
> Вот другой (более точный) пример задачи:
>
> output = Array.new
>
> [ "a", "b", "b1", "b2", "c", "d" ].each{|i|
> output = [ i ]
>
> if i == "b"
> ### получить все следующие элементы итерации,
> ### начинающиеся с буквы "b" (т.е. "b1", "b2")
> ### и записать их в массив output
> end
>
> puts output.join( " " )
> }
>
> результатом должен быть следующий выход:
> "a"
> "b b1 b2"
> "c"
> "d"
>
Первое решение которое пришло в голову:
count_next = 0
a = [ "a", "b", "b1", "b2", "c", "d" ]
a.each_index{|i|
unless count_next == 0
count_next -= 1
next
end
output = [ a[i] ]
if a[i] == "b"
while a[i+1] =~ /b.*/
count_next += 1
i += 1
output.push a[i]
end
end
puts output.join( " " )
}
--
Kirill A. Shutemov Belarus, Minsk
E-mail: k.shutemov (AT) sam-solutions.net
JID: kas (AT) altlinux.org
ICQ: 152302675
> Можно ли программно установить uid процесса = 0, если приложение
> запущено без флажка set user ID on execution, от простого пользователя,
> и без помощи программ типа su, sudo и т.п. приложений?????
Если вы найдёте способ, сообщите нам, пожалуйста, и мы немедленно выпустим
security update.
-- voins in community@
----------- УМЕДХЭБС ЮБУФШ -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.ru/pipermail/ruby/attachments/20041203/3dcde17d/attachment.bin
Подробная информация о списке рассылки Ruby