Ruby Range
Диапазоны повсюду: от a до z, от 0 до 9 и так далее. Ruby поддерживает диапазоны и позволяет использовать их разными способами:
- Диапазоны как последовательности
- Диапазоны как условия
- Диапазоны как интервалы
Диапазоны как последовательности
Первое и наиболее распространённое применение диапазонов — выражение последовательностей. Последовательности имеют начальную точку, конечную точку и способ получения последовательных значений в последовательности.
Ruby использует''..''и''...''операторы диапазона для создания этих последовательностей. Форма с двумя точками создаёт диапазон, включающий указанное наибольшее значение, а форма с тремя точками создаёт диапазон, не включающий указанное наибольшее значение.
Последовательность 1..100 — это объектRange, содержащий двеFixnumссылки на объекты. При необходимости можно использоватьto_aметод для преобразования диапазона в список. Попробуйте следующий пример:
Пример
Попробуйте »
Вывод приведенного выше примера:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
Диапазоны реализуют методы, позволяющие перебирать их и проверять их содержимое различными способами:
Пример
Попробуйте »
Запуск приведённого выше примера даёт:
true 最小值为 0 最大值为 9 不符合条件的有 [5, 6, 7, 8, 9] 在循环中 0 在循环中 1 在循环中 2 在循环中 3 在循环中 4 在循环中 5 在循环中 6 在循环中 7 在循环中 8 在循环中 9
Диапазоны как условия
Диапазоны также можно использовать как условные выражения. Например, следующий фрагмент кода выводит строки из стандартного ввода, где первая строка каждого набора содержит словоstart, а последняя строка содержит словоend.:
Диапазоны можно использовать в операторах case:
Пример
Попробуйте »
Приведённый выше пример выводит:
Passing score
Диапазоны как интервалы
Последнее применение диапазонов — это определение интервала: проверка того, попадает ли указанное значение в заданный диапазон. Для выполнения этой проверки требуется оператор равенства ===.
Пример
Попробуйте »
Приведённый выше пример выводит:
5 在 (1..10)
c 在 ('a'..'j')
Другие расширения