首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么(10..20).last与(10..20).last相同

为什么(10..20).last与(10..20).last相同
EN

Stack Overflow用户
提问于 2014-09-19 15:07:38
回答 1查看 106关注 0票数 5

为什么这两者是等同的呢?

代码语言:javascript
复制
(10..20).last     #=> 20
(10...20).last    #=> 20

这听起来像是Ruby‘Range.last’不给出最后一个值。为什么?的翻版,但这个问题的答案只是说它是设计出来的。为什么它是这样设计的?当其他一切都不同时,.....返回last的相同值的目的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-19 15:34:30

我将用一个问题回答您的问题:0.0...1.0的最后一个值是多少?

一般说来,并不是每个范围都是可枚举的。.对于具有排除结束的此类范围,除了用于定义范围结束的值之外,实际上没有有意义的last值。

还请注意,您可以枚举包含的范围,其中last不是最后枚举的值!

代码语言:javascript
复制
(0..3.2).to_a.last
# 3
(0..3.2).last
# 3.2
(0..Float::INFINITY).to_a.last
# don't wait up for this one

设计的动机是,“用于定义范围结束的值”与“范围所列举的最后一个值”并不相同。last给出了前者。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25937025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档