2011-06-21 42 views

Trả lời

95

Hãy thử foo[0...100], mọi phạm vi sẽ thực hiện. Phạm vi cũng có thể đi tiêu cực. Đó là well explained in the documentation của Ruby.

+8

foo [0100] là như nhau. – steenslag

+19

Cũng lưu ý rằng '' 'foo [0..100]' '' và '' 'foo [0 ... 100]' '' là khác nhau. Một là số không đến một trăm trong khi số còn lại là số không đến chín mươi chín. –

+7

Làm rõ ở trên: foo [0..100] là _inclusive_ (0 đến 100) và foo [0 ... 100] là _exclusive_ (0 đến 99) – OneHoopyFrood

16

Sử dụng [] -operator:

foo[0,100] # Get the first 100 characters starting at position 0 
foo[0..99] # Get all characters in index range 0 to 99 (inclusive) 
foo[0...100] # Get all characters in index range 0 to 100 (exclusive) 

Sử dụng .slice phương pháp:

foo.slice(0, 100) # Get the first 100 characters starting at position 0 
foo.slice(0...100) # All identical to [] 

Và cho đầy đủ:

foo[0] # Returns the first character (doh!) 
foo[-100,100] # Get the last 100 characters in order. Negative index is 1-based 
foo[-100..-1] # Get the last 100 characters in order 
foo[-1..-100] # Get the last 100 characters in reverse order 
foo[-100...foo.length] # No index for one beyond last character 
+0

Cảm ơn vì điều này. Thật hữu ích khi thấy các sắc thái khác nhau với toán tử [], không chỉ là câu trả lời đúng. – johngraham

+0

Đó là cách chúng tôi thích Ruby của chúng tôi. Không chỉ là một cách đúng đắn để làm điều đó (TM). –

Các vấn đề liên quan