Wenn die dreifache Punktnotation in einem Objektbereich Rubin verwenden, erhalte ich diese:Ruby 'Range.last' gibt nicht den letzten Wert. Warum?
(0...5).each{|n| p n}
0
1
2
3
4
Als ich die ‚letzte‘ Methode verwenden, die ich erhalte:
(0...5).last
=> 5
ich erwartet hätte 4
Ist das ein Fehler? Oder verstehe ich etwas über das Konzept eines Range-Objekts nicht?
Hier ist, was Sie nicht über Range-Objekte verstehen: Sehen Sie die Bereich 'Math :: E ... Math :: PI'. Was sollte 'last' sein? Bereiche sind buchstäblich nur ein Anfang, ein Ende und ob das Ende ausgeschlossen ist oder nicht. Die Tatsache, dass ganzzahlige Bereiche aufgezählt werden können, ist eine Besonderheit. Bereiche haben viele andere Anwendungen. – Max
Bereich hat die 'end' Methode dafür, ich drückte. Ich vermisse jedoch die Startmethode. – Rempargo