Ruby 'Range.last' gibt nicht den letzten Wert an. Warum?

Bei Verwendung der Dreifachpunktnotation in einem Ruby Range-Objekt erhalte ich Folgendes:

(0...5).each{|n| p n}
0
1
2
3
4

Wenn ich die "letzte" Methode verwende, erhalte ich:

(0...5).last
 => 5 

Ich hätte 4 erwartet

Ist das ein Bug? Oder gibt es etwas, das ich über das Konzept eines Range-Objekts nicht verstehe?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage