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')