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