加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么ruby中给定语句的输出为真?

发布时间:2020-12-17 02:39:35 所属栏目:百科 来源:网络整理
导读:我在范围三元组=“AAA”上调用了以下语句.“ZZZ”: triples.include? “ABC”#= true:ruby1.9慢,ruby1.8快 我理解为什么输出是真的,但是无法理解为什么它在ruby1.8中快速而在ruby1.9中慢. triples.include? “ABCD”#= false:ruby 1.9和true:ruby 1.8
我在范围三元组=“AAA”上调用了以下语句.“ZZZ”:

> triples.include? “ABC”#=> true:ruby1.9慢,ruby1.8快

我理解为什么输出是真的,但是无法理解为什么它在ruby1.8中快速而在ruby1.9中慢.
> triples.include? “ABCD”#=> false:ruby 1.9和true:ruby 1.8

我无法理解为什么两个版本的输出都不同.
> triples.cover? “ABCD”#=>真实而快速的ruby1.9

与第二个陈述相同的问题.

为什么要盖?并包括? ruby 1.9中的语句不同?

解决方法

在 Ruby> = 1.9中,包括?遍历范围中的每个元素并检查给定元素是否存在.

覆盖?只检查元素是否是> =第一个元素范围和< =范围的最后一个元素. 由于Ruby对字符串进行排序(词法上),“ABCD”> “AAA”和“ABCD”< “ZZZ”. 在Ruby 1.8中,包括?被视为Ruby 1.9的封面? 为了回答你为何与众不同的问题,你的例子说明了对两种不同方法的需求. 例如,如果要检查数字是否在数字范围内,(0..1_000_000_000).cover?(1_000_000_001)比包含更快? – 检查两个元素而不是十亿个. 但是,您的示例显示了为什么包含?是必要的:“ABCD”实际上并不包含在范围内(“AAA”……“ZZZ”),但它被它覆盖.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读