I’m learning ruby this days.
And I followed this docs: http://www.ruby-doc.org/docs/ProgrammingRuby/
Now, I have some questions about === expression
irb(main):138:0> case 1
irb(main):139:1> when 1…10 then ‘in’
irb(main):140:1> else ‘not in’
obviously, the result is ‘in’
In the docs, there are an explanation:
*case operates by comparing the target (the expression after the keyword
case) with each of the comparison expressions after the when keywords.
test is done using comparison === target. As long as a class defines
meaningful semantics for === (and all the built-in classes do), objects
that class can be used in case expressions. *
But, when I type this, why throw an error ?
irb(main):149:0> 1…10 === 1
ArgumentError: bad value for range
from /opt/ruby-1.9.3/bin/irb:12:in `’