2011-09-30 8 views

risposta

9
> puts ("ax".."bc").to_a 
ax 
ay 
az 
ba 
bb 
bc 
2

Range è un'incorporato nel costrutto, memorizzare internamente inizio e di fine (e se è una gamma end-SD) per l'efficienza. Quindi IRB ti mostrerà solo il valore letterale.

Cosa vuoi fare?

3

L'intervallo 'ax' .. 'bc' rappresenta i valori che ci si aspetta ma non li genera finché non è necessario (come modo per risparmiare tempo e spazio nel caso in cui non si utilizzi ciascun valore). È possibile accedervi tramite un'interfaccia o una conversione in un array:

r = 'ax' .. 'bc' # => "ax" .. "bc" 
r.class # => Range 
r.to_a # => ["ax", "ay", "az", "ba", "bb", "bc"] 
r.to_a.class # => Array 
r.each {|x| puts x} 
ax 
ay 
az 
ba 
bb 
bc 
Problemi correlati