以下代码使用触发器操作符.
(1..10).each {|x| print "#{x}," if x==3..x==5 }
Run Code Online (Sandbox Code Playgroud)
为什么结果3,4,5?
我认为应该是3,4.
正如教程中所提到的,这个表达式在以下情况下变为真x == 3,并且直到为止x == 5.如果评价为假,怎么会打印'5'?有人可以请我澄清一下吗?
您正在寻找独家系列吗?您可以使用三个点和cover?方法。
(1..10).each { |x| print "#{x}," if (3...5).cover?(x) }
Run Code Online (Sandbox Code Playgroud)
在您的示例中,它打印 3,4,5 的原因是因为它表示如果 x 在 3 到 5 的范围内,则打印它。