Ruby 将兰德与一系列数字进行比较?

Ruby 将兰德与一系列数字进行比较?,ruby,Ruby,Ruby中是否有一个函数可以让我做我在这里尝试的事情 rand1 = rand(10) puts rand1 puts "" if rand1 == (0..9) print "yes" else print "no" end 这打印出的是否,如何更改第6行以便打印出是?很简单,请使用=== rand1 = rand(10) puts rand1 puts "" if (0..9) === rand1 print "yes" else print "no" end 注

Ruby中是否有一个函数可以让我做我在这里尝试的事情

rand1 = rand(10)

puts rand1
puts ""

if rand1 == (0..9)
  print "yes"
else
  print "no"
end
这打印出的是否,如何更改第6行以便打印出是?

很简单,请使用===

rand1 = rand(10)

puts rand1
puts ""

if (0..9) === rand1
  print "yes"
else
  print "no"
end
注意:rand1==0..9不起作用

你也可以使用会员卡

它很简单,使用方便===

rand1 = rand(10)

puts rand1
puts ""

if (0..9) === rand1
  print "yes"
else
  print "no"
end
注意:rand1==0..9不起作用

你也可以使用会员卡

您可以使用与本例类似的方法

irb(main):001:0> (0..9).cover?(0.1)
=> true
您可以使用与本例类似的方法

irb(main):001:0> (0..9).cover?(0.1)
=> true
您可以使用:

它还允许您提供多个范围或数字进行比较。下面是一个人为的例子:

case rand
when 0..2, 3, 4..9
  print 'yes'
else 
  print 'no'
end
在引擎盖下,case使用===来比较给定的对象,即上述内容几乎等同于:

if 0..2 === rand || 3 === rand || 4..9 === rand
  print 'yes'
else
  print 'no'
end
请注意,当对象成为接收者,rand成为参数时,您可以使用:

它还允许您提供多个范围或数字进行比较。下面是一个人为的例子:

case rand
when 0..2, 3, 4..9
  print 'yes'
else 
  print 'no'
end
在引擎盖下,case使用===来比较给定的对象,即上述内容几乎等同于:

if 0..2 === rand || 3 === rand || 4..9 === rand
  print 'yes'
else
  print 'no'
end

请注意,当对象成为接收者且rand成为参数时,这不是最佳选项,但此处未介绍:


无论如何,请参见范围文档:

不是最佳选项,但此处未介绍此选项:


无论如何,请参阅Range文档:

如果您能够解释Range文档中您不清楚的内容,则可能会有帮助。这样,Ruby开发人员就可以改进文档,这样将来的开发人员就不会遇到与您相同的问题。帮助让世界变得更美好@seasonalz:您正在测试Integer类的对象是否等于Range类的对象。当然,您会得到false。苹果不是梨。你想在这里实现什么?如果你能解释一下你对Range文档不清楚的地方,可能会有帮助。这样,Ruby开发人员就可以改进文档,这样将来的开发人员就不会遇到与您相同的问题。帮助让世界变得更美好@seasonalz:您正在测试Integer类的对象是否等于Range类的对象。当然,您会得到false。苹果不是梨。你想在这里实现什么?