我在尝试理解Range类的cover?
方法如何工作时遇到了一些麻烦。
从文档中可以说:
cover?(val)→true或false :如果obj介于beg和end之间,则返回true,即beg< = obj< = end(或者当exclude_end?为true时结束,则为end)
当我这样做时:
test = "A".."X"
我希望test.cover? "AX"
失败,因为对象AX
似乎超出了范围限制。但是它会返回 true 。然后我执行:test.cover? "XX"
并返回 false
我不知道AX是如何在这个范围内的,一般来说我认为很难看出覆盖?如何适用于不是数字的对象。所以我的问题是:如何对象“AX”在该范围内,但对象“XX”不是。
答案 0 :(得分:3)
在黑暗中拍摄,但我认为这是因为“AX”在“A”后来所以它在范围内,而“XX”来自之后 / em>“X”超出范围。
检查IRB,您可以看到:
"AX" > "A" && "AX" < "B" => true
"XX" > "X" => true