Limited Offer
60% OFF on all plans!

Range in Ruby

Use Ruby's Range class to represent sequences of values, iterate over them, and check membership.

Creating Ranges

Ruby has two range operators: `..` (inclusive, includes the end value) and `...` (exclusive, excludes the end value). Ranges work with integers, floats, strings, and any object that implements `<=>` and `succ`.

1. Inclusive Range (..)

`a..b` includes both `a` and `b`.

2. Exclusive Range (...)

`a...b` includes `a` but excludes `b`.

3. String Ranges

Ranges work on strings using alphabetical order.

Iterating Over Ranges

Ranges are Enumerable — you can iterate over them with `each`, step through them with `step`, or use them directly in `for` loops.

1. each

Iterate every value in a range.

2. step

Iterate with a custom step size.

3. map / select on Range

Use Enumerable methods directly on ranges.

Membership & Comparison

Ruby ranges support `include?`, `cover?`, and `===` for membership testing. They are also used in `case` statements for range-based branching.

1. include? vs cover?

`include?` iterates to check membership; `cover?` uses comparison — much faster for large ranges.

2. Ranges in case Statements

Use ranges as conditions in `case/when` for clean branching.

3. clamp

Clamp a value to stay within a range.

Practical Uses

Ranges are used extensively in Ruby for array slicing, pagination, random numbers, and date spans.

1. Array Slicing with Ranges

Use a range as an index to slice arrays.

2. Random Number in Range

Use `rand` with a range to generate bounded random numbers.