10

我有一个学校的练习,我无法解决它。你能帮助我吗?问题是这样的:

尝试使用带有两个参数的方法 - 使用 between? 方法来确定数字 2 是否介于数字 1 和 3 之间。

我试图找到.between 是什么?方法,但我找不到它。我只知道这是一种方法

4

5 回答 5

20

方法是Comparable#between? ,你可以像这样使用它:

2.between?(1, 3)
# => true
于 2013-06-20T18:11:30.557 回答
5

从“之间”红宝石文档:

between?(min, max) → true 或 false 如果 obj <=> min 小于零或 anObject <=> max 大于零,则返回 false,否则返回 true。

于 2013-06-20T18:11:30.733 回答
5

usebetween?是最简单的方法,我发现这里的大多数答案都没有提到(ruby doc 解释也很难理解), usingbetween?确实包含minandmax值。

例如:

irb(main):001:0> 2.between?(1, 3)
=> true
irb(main):002:0> 3.between?(1, 3)
=> true
irb(main):003:0> 1.between?(1, 3)
=> true
irb(main):004:0> 0.between?(1, 3)
=> false

顺便说一句,ruby doc 引用(对于新手来说太难理解了):

between?(min, max) → true 或 false 如果 obj <=> min 小于零或 anObject <=> max 大于零,则返回 false,否则返回 true。

于 2017-02-01T10:23:00.033 回答
1

哦,当然,它是#===范围的方法:

( 1..3 ) === 2 #=> true
( 1..3 ) === 4 #=> false
于 2013-06-20T19:03:36.443 回答
0

您可以Range#cover?用作解决方案:

(1..3).cover? 2 #=> true
于 2013-06-20T18:12:01.347 回答