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