我在閱讀爲什麼是指導,並嘗試在ruby終端的一些命令並排。有一件事不匹配。我正在運行Ruby 1.9.3。Ruby的範圍和三重等於(===)是如何工作的?
在這本書中,它說一個有效的命令是:
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)我會認爲最後兩次執行是相同的,如何有史以來,似乎並非如此。我想知道是否有人能夠更深入地瞭解爲什麼所有這些實驗都失敗了,以及===如何工作。
如果您使用的是非標準方法,如'echo',你應該解釋它做什麼。否則,如果與問題無關,則應清理示例代碼以使其更易於讀者閱讀。 – sawa
@sawa對不起,正在做一些bash。它的意思是打印。任何關於使代碼更加用戶友好的建議或指導將不勝感激。 – Xiv