我正在尝试对字符串的每个字符执行一个操作,后面跟着另一个字符,即不是最后一个字符的字符.我的代码是:
[0..(str.length - 2)].each do |index|
// do something with index
end
Run Code Online (Sandbox Code Playgroud)
代码出错了.[0..(str.length - 2)]返回一个范围对象而不是可以迭代的实际范围.将a return index放入上面的主体会导致单次迭代,输出类似于[0..7].为什么不迭代每个数字?
小智 6
通过将范围括在[..]中,您创建了一个包含单个Range对象的Array.换句话说,数组的长度是1.你只想要:
(0..(str.length - 2)).each do |index|
// do something with index
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2895 次 |
| 最近记录: |