Программирование на языке Ruby
Шрифт:
Здесь формы с ключевыми словами
Предложение
Этот код напечатает
Если проверяемое выражение — целое число, то его можно сравнивать с целочисленным диапазоном (например,
В Ruby имеется богатый набор циклических конструкций. К примеру,
В примерах из таблицы 1.2 предполагается, что где-то определен такой массив
В цикле этот массив обходится и печатается каждый его элемент.
Таблица 1.2. Циклы
| # Цикл 1 (while) | # Цикл 2 (until) |
|---|---|
| i=0 while i < list.size do print "#{list[i]} " i += 1 end | i=0 until i == list.size do print "#{list[i]} " i += 1 end |
| # Цикл 3 (for) | # Цикл 4 (итератор 'each') |
| for x in list do print "#{x} " end | list.each do |x| print "#{x} " end |
| # Цикл 5 (метод 'loop') | # Цикл 6 (метод 'loop') |
| i = 0 n=list.size-1 loop do print "#{list[i]} " i += 1 break if i > n end | i=0 n=list.size-1 loop do print "#{list[i]} " i += 1 break unless i <= n end |
| # Цикл 7 (итератор 'times') | # Цикл 8 (итератор 'upto') |
| n=list.size n.times do |i| print "#{list[i]} " end | n=list.size-1 0.upto(n) do |i| print "#{list[i]} " end |
| # Цикл 9 (for) | # Цикл 10 ('each_index') |
| n=list.size-1 for i in 0..n do print "#{list[i]} " end | list.each_index do |x| print "#{list[x]} " end |
Рассмотрим
На мой взгляд, конструкции 3 и 4 — самый «правильный» способ кодирования циклов. Они заметно проще всех остальных: нет ни явной инициализации, ни явной проверки или инкремента. Это возможно потому, что массив «знает» свой размер, а стандартный итератор
В циклах 5 и 6 используется конструкция
В циклах 7 и 8 используется тот факт, что у массива есть числовой индекс. Итератор
Цикл 9 — это вариант цикла
В предыдущих примерах мы уделили недостаточно внимания вариантам циклов
Также из таблицы 1.2 осталось неясным, что циклы не всегда выполняются от начала до конца. Число итераций не всегда предсказуемо. Нужны дополнительные средства управления циклами.
Первое из них — ключевое слово
Ключевое слово
Ключевое слово
Ключевое слово
Как мы только что видели, итератор — важное понятие в Ruby. Но следует отметить, что язык позволяет определять и пользовательские итераторы, не ограничиваясь встроенными.
Комарра. Вселенная Майлза. Роман, повесть, эссе
Фантастика:
научная фантастика
рейтинг книги
Русская литература сегодня. Жизнь по понятиям
Русская литература сегодня
Документальная литература:
публицистика
рейтинг книги
1115 вопросов священнику
Религия и эзотерика:
православие
христианство
религия
прочая религиозная литература
рейтинг книги
Потерянный разум
Научно-образовательная:
политика
рейтинг книги
Линия судьбы
Любовные романы:
современные любовные романы
рейтинг книги
Юрий Долгорукий (Сборник)
Проза:
историческая проза
рейтинг книги
Кодекс Охотника. Книга XXVII
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Пираты Зана (сборник)
Классика фантастического боевика
Фантастика:
боевая фантастика
рейтинг книги
Этот мир не выдержит меня. Том 2
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
рейтинг книги
Первый среди равных. Книга II
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Мои друзья
Дом и Семья:
домашние животные
рейтинг книги