Khi sử dụng các ký hiệu dấu chấm ba trong một đối tượng ruby Range, tôi có được điều này:Ruby 'Range.last' không đưa ra giá trị cuối cùng. Tại sao?
(0...5).each{|n| p n}
0
1
2
3
4
Khi tôi sử dụng phương pháp 'cuối cùng' tôi nhận được:
(0...5).last
=> 5
tôi dự kiến sẽ có 4
Đây có phải là lỗi không? Hoặc có điều gì đó tôi không hiểu về khái niệm của một đối tượng Range?
Đây là những gì bạn không hiểu về các đối tượng Phạm vi: xem xét các phạm vi 'Toán học :: E ... Toán học :: PI'. Điều gì sẽ 'cuối cùng' được? Phạm vi theo nghĩa đen chỉ là sự bắt đầu, kết thúc và liệu kết thúc có bị loại trừ hay không. Thực tế là dãy số nguyên có thể được liệt kê trên là một tính năng đặc biệt. Phạm vi có rất nhiều công dụng khác. – Max
Phạm vi có phương thức 'kết thúc' cho điều đó, tôi nhấn mạnh. Tôi đang thiếu phương thức 'start'. – Rempargo