如何理解与布尔比较一起使用的'...'运算符

Hao*_*Tan 3 ruby syntax

select = []
0.upto 5 do |value|
  select << value if (value==2)...(value==2)
end
p select # [2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何理解这段代码?

ddu*_*ubs 5

我学到了一些东西,因为我从未见过使用布尔值的范围运算符.显然在这种情况下,它被称为"触发器"操作符.基本上,条件评估False直到条件的第一部分为止True.然后它"翻转"并评估,True直到第二部分评估True.在您的示例中,第二部分永远不会评估为True因为它已经传递了有效条件,value == 2因此它将继续提供所提供的范围.如果将第二个条件更改为value == 4:您可以看到这个翻转操作:

select = []
0.upto 5 do |value|
  select << value if (value==2)...(value==4)
end
p select # [2,3,4]
Run Code Online (Sandbox Code Playgroud)

参考:http://nithinbekal.com/posts/ruby-flip-flop/