Ruby | Métodos de clase de rango

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *