English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Rango (Range) en todas partes: de a a z, de 0 a 9y otros. Ruby admite rangos y permite utilizarlos de diferentes maneras:
como rango de secuencia
como rango de condición
Rango como intervalo
La primera y la más común de las usos del rango es expresar secuencias. Una secuencia tiene un punto de partida, un punto de llegada y una manera de generar valores consecutivos.
Ruby utiliza ".." y "..." Los operadores de rango crean estas secuencias. La forma de dos puntos crea un rango que incluye el valor máximo especificado, y la forma de tres puntos crea un rango que no incluye el valor máximo especificado.
(1..5) #==> 1, 2, 3, 4, 5 (1...5) #==> 1, 2, 3, 4 ("a".."d") #==> "a", "b", "c", "d"
secuencia 1..100 es una Rango El objeto, que contiene dos Fixnum La referencia al objeto. Si es necesario, puede usar to_a El método convierte el rango en una lista. Pruebe el siguiente ejemplo:
#!/usr/bin/ruby $, =", " # Separador de valores de array rango1 =1..10).to_a rango2 = ("bar".."bat").to_a imprimir "#{rango1" imprimir "#{rango2"
El resultado de ejecutar el ejemplo anterior es:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
El rango implementa métodos que le permiten recorrerlos, y puede verificar su contenido de varias maneras:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- # Especificar rango dígito = 0..9 imprimir dígito.incluye?(}5) ret = dígito.mínimo imprimir "El valor mínimo es #{ret}" ret = dígito.máximo imprimir "El valor máximo es #{ret}" ret = dígito.rechazar {|i| i < 5 } imprimir "Los que no cumplen con la condición son #{ret}" cada dígito.each do |dígito| imprimir "en el ciclo #{dígito}" end
El resultado de ejecutar el ejemplo anterior es:
verdadero El valor mínimo es 0 El valor máximo es 9 Los que no cumplen con la condición son [5, 6, 7, 8, 9] en el ciclo 0 en el ciclo 1 en el ciclo 2 en el ciclo 3 en el ciclo 4 en el ciclo 5 en el ciclo 6 en el ciclo 7 en el ciclo 8 en el ciclo 9
El rango también se puede usar como expresión condicional. Por ejemplo, el siguiente fragmento de código imprime las líneas de entrada estándar, donde la primera línea de cada conjunto contiene la palabra inicio,la última línea contiene la palabra final.:
mientras se obtiene imprimir si /inicio/../end/ end
El rango se puede usar en la declaración caso:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- puntuación = 70 result = caso puntuación when 0..40 "Puntuación baja" when 41..60 "Casi aprobado" when 61..70 "Puntuación aprobada" when 71..100 "Puntuación buena" else "Puntuación incorrecta" end puts result
El resultado de ejecutar el ejemplo anterior es:
Puntuación aprobada
El último uso del rango es la detección de intervalos: verificar si un valor específico está dentro de un rango específico. Se debe usar el operador de igualdad === para completar el cálculo.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- if (1..10) ==== 5) puts ""5 en (1..10)" end if "('a'..'j') === 'c' puts "c en ('a'..'j')" end if "('a'..'j') === 'z' puts "z en ('a'..'j')" end
El resultado de ejecutar el ejemplo anterior es:
5 en (1..10) c en ('a'..'j')