Rages

1. Definim dades i imprimim

numeros = [1,2,3,4,5,6,7,8,9,10]

numeros.each do |numero|
   puts numero
end

Output

1
2
3
4
5
6
7
8
9
10

2. Cambian la sintaxi (1..10)

numeros = (1..10)

numeros.each do |numero|
   puts numero
end

Output

1
2
3
4
5
6
7
8
9
10

3. Cambien la sintaxi

(1..10).each do |numero|
   puts numero
end

Output

1
2
3
4
5
6
7
8
9
10

4. Definim que ens tornen els valors de dos en dos

(1..20).step(2).each do |numero|
   puts numero
end

Output

1
3
5
7
9
11
13
15
17
19

5. Per a obtenir els nombres parells cal comenzar des de zero

(0..20).step(2).each do |numero|
   puts numero
end

Output

0
2
4
6
8
10
12
14
16
18
20

6. Els rangs també funcionen amb cadenes

Això és el rang (0..20)

('a'..'z').each do |numero|
   puts numero
end

Output

a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

7. Ho presentem de forma diferent

('a'..'z').each do |numero|
   print numero + ", "
end

Output

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

8. Demanem el valor mínim amb el mètode .min

Els rangs comparteixen molts mètodes que ja tenen les llistes.

puts (0..20).min
0

9. Demanem el valor màxim

puts (0..20).max
20

Això també es pot fer utilitzant les llistes, però els rangs no són llistes.

10. Convertir rang a llista

El mètode reverse no funciona amb els rangs, cal convertir-lo primer a una llista.

puts (0..20).to_a.reverse

Output

20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

Així podrem utilitzar els mètodes que normalment col·locariem en una llista.

11. Utilizant les funcions de les llistes en paràmetres més complicats

puts ('ma'..'md').to_a.reverse

Output

md
mc
mb
ma

El rang fa el que en altres llenguatges fa la sentència for.