【发布时间】:2012-11-23 10:50:34
【问题描述】:
我最近开始学习 Ruby,正在阅读以下Ruby Manual。
在本手册中,他们说以下(关于范围):
通用范围的最终用途是作为区间测试:查看是否 某个值落在范围表示的区间内。这是 使用 ===(大小写相等运算符)完成。
这些例子:
- (1..10) === 5 » 真
- (1..10) === 15 » 错误
- (1..10) === 3.14159 » 真
- ('a'..'j') === 'c' » 真
- ('a'..'j') === 'z' » 假
在阅读了 Ruby "===" 运算符 here 之后,我发现这适用于范围,因为 Ruby 将其转换为 case 语句。
因此,您可能希望能够将范围放入您的案例语句中, 并让它被选中。另外,请注意 case 语句转换为 b===a 在 case a 等语句中,当 b then true 结束时。
但是我有以下问题:为什么下面的命令返回 true?
(1..10) === 3.14159 » 真
由于 (1..10) 表示 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我预计结果会是错误的。
【问题讨论】: