Requisito previo: Ruby | Rangos
Ruby proporciona una clase Range . Los rangos de Ruby representan un conjunto de valores con un principio y un final. Los valores de un rango pueden ser números, caracteres, strings u objetos. Se construye usando start_point..end_point , start_point…endpoint literales, o con ::new . Proporciona flexibilidad al código y reduce el tamaño del código. También puede crear un rango usando Range.new . Un rango que contiene … (dos puntos) significa que va desde el valor inicial hasta el valor final inclusive y si un rango contiene … (tres puntos) significa que excluye el valor final.
Ejemplo:
(1..6).to_a # Output= [1, 2, 3, 4, 5, 6] (1...6).to_a # Output= [1, 2, 3, 4, 5]
Nota: en Ruby, los rangos se pueden crear usando los objetos, siempre que los objetos se puedan comparar usando su operador <=>. Para devolver el siguiente objeto en secuencia, proporciona soporte al método succ .
Método de clase
nuevo : este método se usa para crear un rango a partir de un valor inicial y final dado. En este método, si el tercer parámetro es falso o está excluido, el rango incluye el objeto final. De lo contrario, se omitirá.
Range.new(start, end, exclusive=false)
Ejemplo:
Ruby
# Ruby program to illustrate # new Method a = 12 b = 15 # Output will be 12..15 Range.new(a, b, false)
Producción:
12..15
Métodos de instancia
- == : este método devuelve verdadero si obj cuyo inicio, finalización y valor del tercer parámetro es el mismo que rng . De lo contrario, devolverá falso. El tipo de retorno de este método es booleano.
rng==obj-->true or false
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of == method # Using Range.new class method a = Range.new(2, 5, false) b = Range.new(2, 5, false) # Using == instance method a == b
- Producción:
true
- === : en este método, si rng omite su final, devuelve rng.start <= valor < rng.end y si rng es inclusivo, devuelve rng.start <= valor<= rng.end . Convenientemente, === es el operador de comparación y las declaraciones de casos lo usan.
rng===value --> true or false
- Ejemplo:
Ruby
# Ruby program to illustrate the use # of === method by case statement # taking case statement case 25.67 when 1...55 then puts "Lower" when 55...85 then puts "Medium" when 85...100 then puts "Upper" end
- Producción:
Lower
- begin : este método devuelve el primer objeto de rng .
rng.begin --> obj
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of begin method # Creating range using the new method b = Range.new(3, 9, false) # using begin instance method b.begin
- Producción:
3
- each : este método se usa para iterar sobre elementos de rng , pasando cada uno a su vez al bloque.
rng.each{|j| block} --> rng
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of each method # using each method (40..45).each do |i| print i, '....' end
- Producción:
40....41....42....43....44....45....
- end : este método devuelve el objeto final de rng .
rng.end --> obj
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of end method # using end method a = Range.new(3, 9, false) a.end
- Producción:
9
- eql? : este método verifica si obj y rng son iguales en términos de inicio, fin y bandera exclusiva. Si obj contiene el mismo valor de inicio, final y marca exclusiva que rng , devuelve verdadero; de lo contrario, devuelve falso.
rng.eql?(obj) --> true or false
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of eql? method # Constructing ranges a = Range.new(2, 5, false) b = Range.new(2, 5, false) # using eql? method a.eql?(b)
- Producción:
true
- excluir_final? : este método devuelve verdadero si se omite el final del rng ; de lo contrario, devuelve falso.
rng.exclude_end? --> true or false
- Ejemplo:
Ruby
# Ruby program to illustrate the # use of exclude_end? method # constructing range a = Range.new(3, 9, false) # using exclude_end? method a.exclude_end?
- Producción:
false
- primero : este método devuelve el objeto inicial de rng .
rng.first --> obj
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of first method # constructing range a = Range.new(3, 9, false) # using the first method a.first
- Producción:
3
- last : este método devuelve el último objeto de rng .
rng.last --> obj
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of last method # constructing range a = Range.new(3, 9, false) # using last method a.last
- Producción:
9
- ¿miembro? : este método verifica si el valor dado es miembro de rng . Si el valor dado es el miembro de rng , devuelve verdadero; de lo contrario, devuelve falso.
rng.member?(value) --> true or false
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of member? method # taking a range a = 1..10 # using member? method a.member?(5)
- Producción:
true
- ¿incluir? : este método devuelve verdadero si obj es un elemento de rng , de lo contrario, devuelve falso.
rng.include?(value) --> true or false
- Ejemplo:
Ruby
# Ruby program to illustrate # the use of include? method # using include? method ("A".."G").include?("Z")
- Producción:
false
- paso : Este método itera sobre rng , pasando cada n -ésimo objeto al bloque. Si el rango tiene números, además de uno genera elementos sucesivos. De lo contrario , el paso invoca el método succ para iterar los elementos del rango.
rng.step(n=1){|obj|block} --> rng
Referencia: https://ruby-doc.org/core-1.9.3/Range.html
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA