Rubyで、 === を使うと範囲チェックができます。 Rubyでは、 === は、JavaScriptのような厳密等価ではなく曖昧等価のような感じです。


(0..10) === x   # true,falseを返す

もしも逆に x === (0..10) とした場合は、意図した答えになりません。 また優先順位の関係で、 0..10 === x もエラーになります。


>irb
irb(main):001:0> x=5
=> 5
irb(main):002:0> (0..10)===x
=> true
irb(main):003:0> x===(0..10)
=> false
irb(main):004:0> 0..10===x
ArgumentError: bad value for range
        from (irb):4
        from :0
irb(main):005:0>


通常 === は、case文で使われているようです。

ret =  case num
  when 0..100;        "0-100"
  when 100..500;      "100-500"
  when 500..1000;     "500-1000"
  when 1000..5000;    "1000-5000"
  when 5000..10000;   "5000-10000"
  when 10000..50000;  "10000-50000"
  when 50000..100000; "50000-100000"
  else                "100000-"
end


=== は、JavaScriptで使用する場合は厳密等価演算子になります。


参考

2022/03/09