Quando si utilizza la notazione dot tripla in un oggetto rosso rubino Range, ottengo questo:Ruby 'Range.last' non fornisce l'ultimo valore. Perché?
(0...5).each{|n| p n}
0
1
2
3
4
Quando uso il metodo 'ultima' ottengo:
(0...5).last
=> 5
mi sarei aspettato 4
Si tratta di un bug? O c'è qualcosa che non capisco riguardo al concetto di oggetto Range?
Ecco cosa non si è capire su oggetti Range: prendere in considerazione la range 'Math :: E ... Math :: PI'. Che cosa dovrebbe durare? Le gamme sono letteralmente solo un inizio, una fine e se la fine è esclusa o meno. Il fatto che gli intervalli interi possano essere enumerati è una caratteristica speciale. Le gamme hanno molti altri usi. – Max
Range ha il metodo 'end' per quello, ho premuto. Comunque mi manca il metodo 'start'. – Rempargo