Si prega di qualcuno potrebbe spiegare che cosa significa un oggetto intervallo di 2..-1
.Che cosa significa un intervallo di 2 ..- 1 significa? (Ruby koans about_arrays.rb)
rubino koan ha le seguenti in 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
Il seguente sito web (trovato da un'altra risposta) spiega come campi di lavoro con affettare: Gary Wright, string/array slices Da questo, capisco perché la spaccatura dà la rispondi lo fa. La cosa che non capisco è WHAT range a cui si riferisce la gamma dell'oggetto. Per un range di normalità, non posso fare:
(1..3).each { |x| puts(x) }
che dà il seguente output quando eseguito in IRB:
1
2
3
=> 1..3e
Tuttavia, (2..-1).each { |x| puts(x) }
dà:
=> 2..-1
Così che cosa fa la gamma (2..-1)
significa?
Grazie a @DragoonWraith. Forse sto pensando all'oggetto range in modo errato. Dalla tua risposta, è un intervallo con un inizio di 2 (terzo elemento) e una fine di -1 (ultimo elemento). Credo che ciò che mi confonde è cosa significa questo al di fuori del contesto della scissione: quali numeri sono "tra" il 2 e il -1; perché '(2 ..- 1) .each' non stampa nulla? – Will
@Will: hai solo tre elementi nell'array, quindi non c'è niente tra "2" e l'ultimo; '2' * è * l'ultimo. Ecco perché non stai vedendo nulla. Se provi con un array più grande, dovresti vedere le cose. – KRyan
"quali numeri sono 'tra' 2 e -1" - Nessuno. "perché non (2 ..- 1) .è stampato qualcosa?" - Ecco perché ;-) –