为什么ruby中给定语句的输出为真?
我在范围三元组=“AAA”上调用了以下语句.“ZZZ”:
> triples.include? “ABC”#=> true:ruby1.9慢,ruby1.8快 我理解为什么输出是真的,但是无法理解为什么它在ruby1.8中快速而在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”),但它被它覆盖. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |