Project

General

Profile

Actions

Misc #18984

closed

Doc for Range#size for Float/Rational does not make sense

Added by masasakano (Masa Sakano) about 2 years ago. Updated 8 months ago.

Status:
Closed
Assignee:
-
[ruby-core:109773]

Description

When Range consists of any Numeric, according to Official docs for Ruby-3.1.2, Range#size should,

Returns the count of elements in self if both begin and end values are numeric;

Indeed, when Range consists of only Integer, this makes sense.
However, when the begin value of Range is a Float or Rational, "the count of elements" does not make sense. Such Ranges are not iteratable, suggesting there are no such things as "elements":

(0.51..5.quo(2)).each{}  # => TypeError

Yet, Range#size of such Ranges returns an Integer

(0.51..5.quo(2)).size  # => 2

It seems both begin and end values of a Range are rounded (Numeric#round) to the nearest Integer before Range#size is calculated.

If this is the specification, I suggest it should be clearly stated in the Official docs, avoiding the confusing expression "the count of elements", because "elements" are not unambiguously defined for Range of Float/Rational.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0