2010-08-17 11 views
36

Ich weiß nicht, ob ich nur nach den falschen Dingen suche oder was, aber gibt es eine einfache Möglichkeit, einen Bereich auszuwerten und zu prüfen, ob eine Ganzzahl innerhalb dieses Bereichs liegt (2..100) Syntax.Prüfe, ob eine Ganzzahl in einem Bereich liegt

Zum Beispiel, ich wollte als wahr bewerten, wenn meine ganze Zahl x = 100, und mein Bereich ist (0..200), ich bin nur auf der Suche nach der einfachen, prägnanten Ruby-Art, dies zu tun.

+0

oops, ich meinte 0..200 –

Antwort

77

Es gibt viele Möglichkeiten, die gleichen Dinge tun in Ruby. Sie können prüfen, ob Wert im Bereich unter Verwendung von folgenden Methoden ist,

14.between?(10,20) # true

(10..20).member?(14) # true

(10..20).include?(14) # true

Aber ich würde vorschlagen, mit between? statt member? oder include?

Alle Zahlenliterale bezeichnen inklusive Bereiche. Sie können mehr über es auf Ruby in Rails finden.

+0

Auch im [Ruby community style guide] (https://github.com/bbatsov/ruby-style-guide/commit/1b8c788c836f00507056eba21d4b9ca8078eec3e). – Dennis

11

Sie die member? Methode des Bereichs dieses

(1..10).member?(1) => true 
(1..10).member?(100) => false 
9
(2..100).include?(5) #=> true 
(2..100).include?(200) #=> false 

Hinweis testen können, dass 2..0 ist ein leerer Bereich, so wird (2..0).include?(x)false Rückkehr für alle Werte von x.

13

Sie die === operator verwenden:

(1..10) === 1 #=> true 
(1..10) === 100 #=> false 
Verwandte Themen