我是新来的Ruby和我写了一个非常简单的应用程序打印一周的天数,然后在循环中删除一个天:为什么Array.each中的Array.delete不会删除所有项目?
def print_days(days)
days.each do |day|
print "The day of the week is: #{day}\n"
days.delete(day)
print "\n*****************************************************\n"
print days
print "\n*****************************************************\n"
end
end
wd = %w[Monday Tuesday Wednesday Thursday Friday Saturday Sunday]
print print_days(wd
这让下面的输出时运行。任何人都可以解释为什么当我按顺序删除每个元素时为什么会跳过星期二,星期四和星期六,并且数组显示它们在那里?您可以在安装运行这个简单的代码:
The day of the week is: Monday
*****************************************************
["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
*****************************************************
The day of the week is: Wednesday
*****************************************************
["Tuesday", "Thursday", "Friday", "Saturday", "Sunday"]
*****************************************************
The day of the week is: Friday
*****************************************************
["Tuesday", "Thursday", "Saturday", "Sunday"]
*****************************************************
The day of the week is: Sunday
*****************************************************
["Tuesday", "Thursday", "Saturday"]
*****************************************************
["Tuesday", "Thursday", "Saturday"]
你为什么要叫''each'内delete'?你试图达到什么目的? –
(请尝试创建一个重点标题。) – 2013-01-18 21:06:02