Latest web development tutorials

Gamma Rubino (Range)

Gamma (Gamma) è ovunque: dalla A alla Z, da 0 a 9, e così via. Rubino gamma di supporto, e ci permette di utilizzare una serie di modi diversi:

  • Poiché il campo di sequenza
  • Poiché il campo di condizioni
  • Poiché il campo dell'intervallo

Poiché il campo di sequenza

Il primo e più comune uso della gamma viene espresso sequenze. Sequenza ha un punto iniziale e un punto finale in una sequenza per produrre un valore continuo.

Rubino utilizza'' .. '' e '' ... ''operatore di intervallo per creare queste sequenze. Due forme creano un intervallo che contiene il valore più alto della gamma tre punti specificato per creare un modulo che non contiene il valore massimo specificato.

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

1..100 sequenza è un oggettoRangeche contiene due oggettiFixnum.Se necessario, è possibile utilizzare il metodo perto_agamma in una lista. Provare i seguenti esempi:

#!/usr/bin/ruby

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

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

Eseguire l'uscita precedente esempio è il seguente:

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

In modo che è possibile ottenere una gamma di attraversare i loro metodi, è possibile controllare il contenuto in diversi modi:

#!/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

Eseguire l'uscita precedente esempio è il seguente:

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

Poiché il campo di condizioni

Intervalli anche essere usato come espressione condizionale. Ad esempio, il seguente frammento di stampa codice dalla linea standard input, in cui ciascuna delle prime file della raccolta contienel'inizio parola,l'ultima riga contiene la parolafine .:

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

Gamma può essere utilizzato in caso economico:

#!/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

Eseguire l'uscita precedente esempio è il seguente:

及格分数

Poiché il campo dell'intervallo

Infine, un uso modello intervallo di rilevamento: Controllare il valore specificato è compreso nell'intervallo specificato. === È necessario utilizzare l'operatore di uguaglianza per completare il calcolo.

#!/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

Eseguire l'uscita precedente esempio è il seguente:

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