【发布时间】:2012-07-13 03:46:53
【问题描述】:
我今天制作了一个非常小的 ruby 脚本,它使用正则表达式来跟踪具有特定名称的文件中的某些内容,并在添加替换之前删除该内容。 (否则在迭代过程中会出错)。
我不太习惯 ruby(仅在 1-2 周前我的假期工作开始后才使用它),但我的一个习惯是在迭代时避免接触列表(或大多数其他 ADT 使用索引)在它们之上(删除某些内容),我使用哪种语言并不重要。
经过一番搜索,我发现了一些可以提供帮助的 Array 函数。现在,我正在使用Array.reject!,并且脚本就像我希望的那样工作,但老实说,我无法弄清楚为什么Array.reject! {|line| line =~ regex } 在跳过数组中的对象时没有问题。这些来源,ruby-docs 和some random website,确认在迭代时立即应用了更改,这让我想知道它是如何不搞砸的......被删除的行没有空间/words 之间,只有 \n 将下一个带到它自己的行当然(但这只是字符串结尾的一部分)。
有人对此有很好的解释吗?
【问题讨论】:
标签: ruby arrays object iteration