我正在阅读Why's guide,并并排尝试ruby终端中的一些命令。一件事不符合。我正在运行 Ruby 1.9.3。
在书中它说一个有效的命令是:
if 1890..1913 === 1895
echo "works"
end
但是,当我这样做时,它只会给我
warning: (irb):27: warning: integer literal in conditional range
=> nil
一些更有趣的实验
1895..1913 === 1895
> ArgumentError: bad value for range
from (irb):31
from /usr/bin/irb:12:in `<main>'
x = 1895..1913
x === 1895
> true
这很有趣,因为(来自 python)我会认为最后两次执行是相同的,但似乎并非如此。我想知道是否有人可以更深入地了解为什么所有这些实验都失败了,以及 === 是如何工作的。