gpt4 book ai didi

ruby - 为什么 string[1..-1] 有效但 string[-3..1] 无效

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

下面的 block 会显示ruit

puts "fruit"[1..-1]

因为索引从 1 开始,我认为 -1 在这种情况下代表无穷大

f  r  u  i  t

0 1 2 3 4

但是如果我想使用反向索引,它就不行了。

按照同样的逻辑,我希望它返回 ruit,因为 0 代表无穷大

puts "fruit"[-4..0]

f r u i t

-5 -4 -3 -2 -1

然而,这实际上什么也没有返回。用 1 而不是 0 再试一次

puts "fruit"[-4..1]

f r u i t

-5 -4 -3 -2 -1

它只返回r

--

尝试用 5 而不是 4

puts "fruit"[-5..1]

f r u i t

-5 -4 -3 -2 -1

取得一些进展,返回fr

--

但是我似乎不了解反向索引。 [1..-1] 中的-1 不是无穷大吗?为什么当您尝试执行相反操作时它不起作用?

最佳答案

很简单,负数索引表示从末尾开始计数的位置,对于正数索引i和负数索引j,它们表示相同的位置当且仅当

i % string.length == j % string.length

假设ij的绝对值小于string.length

您声称不工作的情况是开始位置在结束位置右侧的情况。

关于ruby - 为什么 string[1..-1] 有效但 string[-3..1] 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818681/

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