gpt4 book ai didi

ruby - 表示数字的字符串之间的空范围

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:34 24 4
gpt4 key购买 nike

这里有两个范围值。

('1'..'10').to_a   => ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

但是,

('2'..'10').to_a  => []

为什么第二个在 ruby​​ 1.8.7 中返回一个空数组?

最佳答案

问题是 Ruby 1.8 在代码分析过程中试图确定 ('2'..'10') 是否是一个有效范围,并决定它是无效的。 '2''10' 之后排序,使范围值向后。

当人们试图对字符串值进行排序时,这是一个常见的问题,他们会一次又一次地遇到它,直到他们知道这个技巧永远行不通。

使用 1.8.7:

('2'..'10').to_a
=> []
('02'..'10').to_a
=> ["02", "03", "04", "05", "06", "07", "08", "09", "10"]

或者:

(2..10).map(&:to_s)
=> ["2", "3", "4", "5", "6", "7", "8", "9", "10"]

如果我需要与 1.8 和 1.9+ Rubies 兼容,我可能会使用最后一种方法。

关于ruby - 表示数字的字符串之间的空范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com