Latest web development tutorials

Rubí Rango (Rango)

Rango (rango) está en todas partes: de A a Z, 0 a 9, y así sucesivamente. Rubí gama de apoyo, y nos permite utilizar una gama de diferentes maneras:

  • A medida que el rango de la secuencia
  • A medida que la gama de condiciones de
  • Dado que la gama de intervalo

A medida que el rango de la secuencia

La primera y más común el uso de la gama se expresa secuencias. Secuencia tiene un punto de partida y un punto final en una secuencia para producir un valor continuo.

Rubí utiliza'' .. '' y '' ... ''operador de rango para crear estas secuencias. Dos formas crean un rango que contiene el valor más alto de la línea de tres puntos especificados para crear una forma que no contiene el valor máximo especificado.

(1..5)        #==> 1, 2, 3, 4, 5
(1...5)       #==> 1, 2, 3, 4
('a'..'d')    #==> 'a', 'b', 'c', 'd'

1..100 secuencia es un objetoRangeque contiene dos objetosFixnum.Si es necesario, puede utilizar el método deto_arango en una lista. Prueba los siguientes ejemplos:

#!/usr/bin/ruby

$, =", "   # Array 值分隔符
range1 = (1..10).to_a
range2 = ('bar'..'bat').to_a

puts "#{range1}"
puts "#{range2}"

Ejecutar la salida anterior ejemplo es:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
["bar", "bas", "bat"]

Por lo que se puede lograr una gama de atravesar sus métodos, puede comprobar su contenido de varias maneras:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

# 指定范围
digits = 0..9

puts digits.include?(5)
ret = digits.min
puts "最小值为 #{ret}"

ret = digits.max
puts "最大值为 #{ret}"

ret = digits.reject {|i| i < 5 }
puts "不符合条件的有 #{ret}"

digits.each do |digit|
   puts "在循环中 #{digit}"
end

Ejecutar la salida anterior ejemplo es:

true
最小值为 0
最大值为 9
不符合条件的有 [5, 6, 7, 8, 9]
在循环中 0
在循环中 1
在循环中 2
在循环中 3
在循环中 4
在循环中 5
在循环中 6
在循环中 7
在循环中 8
在循环中 9

A medida que la gama de condiciones de

también rangos de ser utilizado como una expresión condicional. Por ejemplo, el siguiente fragmento de código de impresión desde la línea de entrada estándar, en el que cada una de las primeras filas de la colección contiene la palabra deinicio,la última línea contiene la palabrafin .:

while gets
   print if /start/../end/
end

El rango puede ser utilizado en caso de declaración:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

score = 70

result = case score
when 0..40
	"糟糕的分数"
when 41..60
	"快要及格"
when 61..70
	"及格分数"
when 71..100
   	"良好分数"
else
	"错误的分数"
end

puts result

Ejecutar la salida anterior ejemplo es:

及格分数

Dado que la gama de intervalo

Por último, un patrón de uso de detección de intervalo: Comprobar el valor especificado está dentro del rango especificado. === Es necesario utilizar el operador de igualdad para completar el cálculo.

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

if ((1..10) === 5)
  puts "5 在 (1..10)"
end

if (('a'..'j') === 'c')
  puts "c 在 ('a'..'j')"
end

if (('a'..'j') === 'z')
  puts "z 在 ('a'..'j')"
end

Ejecutar la salida anterior ejemplo es:

5 在 (1..10)
c 在 ('a'..'j')