Proszę kogoś, kto może wyjaśnić, co oznacza obiekt z zakresu 2..-1
.Co oznacza zakres 2 ..- 1? (Ruby koans about_arrays.rb)
Ruby koany ma następujący w about_arrays.rb:
def test_slicing_with_ranges
array = [:peanut, :butter, :and, :jelly]
assert_equal [:peanut, :butter, :and], array[0..2]
assert_equal [:peanut, :butter], array[0...2]
assert_equal [:and, :jelly], array[2..-1]
end
następującej stronie internetowej (znaleziono innej odpowiedzi) wyjaśnia, w jaki sposób pracować z zakresy krojenia: Gary Wright, string/array slices Z tego rozumiem, dlaczego split daje odpowiedz, że tak. Rzecz, której nie rozumiem, to: WHAT range, do której odnosi się obiekt range. Dla normalnego zakresu, co mogę zrobić:
(1..3).each { |x| puts(x) }
co daje następujące dane wyjściowe, gdy wykonywane w IRB:
1
2
3
=> 1..3e
Jednak (2..-1).each { |x| puts(x) }
daje:
=> 2..-1
Więc co zasięg (2..-1)
znaczy?
Dzięki @DragoonWraith. Może źle myślę o obiekcie zasięgu. Z Twojej odpowiedzi wynika zakres od początku 2 (trzecia pozycja) i koniec -1 (ostatnia pozycja). Domyślam się, co mnie myli, co to znaczy poza kontekstem podziału: jakie liczby znajdują się pomiędzy "2 a -1; dlaczego '(2 ..- 1) .each' nic nie drukuje? – Will
@Will: Masz tylko trzy elementy w swojej tablicy, więc nie ma nic pomiędzy "2" a ostatnim; '2' * jest * ostatnim. Dlatego nic nie widzisz. Jeśli spróbujesz z większą tablicą, powinieneś zobaczyć rzeczy. – KRyan
"jakie są liczby" między "2 a -1" - Brak. "dlaczego nie (2 ..- 1). Czy drukujesz coś?" - Dlatego :-) –