RANGOS
Un rango es un tipo de variable que representa unos elementos consecutivos.
Sintaxis: (desde..hasta)
(1..10)
representa a los números del 1 al 10 inclusive.
('b'..'x')
representa las letras de la 'b' a la 'x' inclusive
(desde...hasta)
con 'tres' puntos, significa lo mismo pero 'el hasta' no es inclusive
===
es un ´comparador' para expresar condiciones de pertenencia al rango.
|
|
BLOQUES
En ruby el concepto de bloque es muy importante
Un bloque
son 'lineas' de codigo entre {}
, o entre do
y end
{.....}
o do.......end
# Ejemplos de bloques
{a=5}
#
{
a=3
puts "uno"
puts "dos"
puts a
}
#
do
puts "linea 1"
if i==1
puts "linea2"
end
end
Un bloque puede tener parametros. Se escriben al principio etre caracteres |
{|par1|..|parn|......}
o do|par1|...|parn|......end
# Ejemplos de bloques con parametros
#aqui el parametro x
{|x|a=x}
#aqui los parametros var1,var2
{|var1|var2|
a=3
puts var1
puts var2
puts a
}
#aqui los parametros x,y
do |x|y|
puts "linea 1"
if x==1
puts "linea2",x,y
end
end
ITERADORES
Un iterador
es una función o método al que se le pasa como parámetro un bloque y ejecuta el bloque hasta que se cumple una condición
La sintasix es iterador bloque
. En las instruciones del iterador nos dirán cual es la condición para que termine el iterador, si hay que pasar un parámetro al bloque y que significado tiene ese parametro
Ejemplos:
- El iterador
each
de unstring
, nos ejecuta el bloque por cada palabra(pasandole el caracter separador) que hay en el string y nos deja la palabra en el parámetro del bloque - El iterador
each_byte
de unstring
, nos ejecuta el bloque por cada byte que hay en el string y nos deja el codigo ascii del byte en el parámetro del bloque - El iterador
each
de unrango
, nos ejecuta el bloque por cada elemento del rango y nos deja el elemento del rango en el parámetro del bloque
|
|
FOR
En ruby, el bucle for
es un poco complicado, pero puede ser bastante util
Su sintaxis es for elemento in coleccion...end
. Una coleccion puede ser casi cualquier cosa, pero por ahora solo lo utilizaremos con rangos.
Es equivalente a colecion.each do|elemento|....end
.
|
|
.----oOO--OOo----.
No hay comentarios:
Publicar un comentario