我最近开始学习Ruby,并阅读以下Ruby手册。
在该手册中,他们关于范围说了以下内容:
一个多功能范围的最后用途是作为区间测试:检查某个值是否落在范围所表示的区间内。这是使用===,即情况等式运算符来完成的。
有了这些例子:
(1..10) === 5 » true (1..10) === 15 » false (1..10) === 3.14159 » true ('a'..'j') === 'c' » true ('a'..'j') === 'z' » false 阅读了关于Ruby "==="运算符 here 的内容之后,我发现这是因为Ruby将其转换为case语句而在范围上起作用。
您可能希望在case语句中使用范围,并使其被选择。此外,请注意,像case a when b then true end这样的语句将转换为b===a。然而,我有以下问题:为什么以下命令返回true?由于(1..10)表示[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我期望结果是false。
在该手册中,他们关于范围说了以下内容:
一个多功能范围的最后用途是作为区间测试:检查某个值是否落在范围所表示的区间内。这是使用===,即情况等式运算符来完成的。
有了这些例子:
(1..10) === 5 » true (1..10) === 15 » false (1..10) === 3.14159 » true ('a'..'j') === 'c' » true ('a'..'j') === 'z' » false 阅读了关于Ruby "==="运算符 here 的内容之后,我发现这是因为Ruby将其转换为case语句而在范围上起作用。
您可能希望在case语句中使用范围,并使其被选择。此外,请注意,像case a when b then true end这样的语句将转换为b===a。然而,我有以下问题:为什么以下命令返回true?由于(1..10)表示[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我期望结果是false。